【发布时间】:2021-10-26 18:30:04
【问题描述】:
我可能在这里遗漏了一些简单的东西,但是如何使用 Laravel/Eloquent 获取表的主键?当我执行以下操作时,当它直接在数据库上执行时,我得到了一个不正确的语法错误。
$primarykey = DB::table('table')->whereRaw('SHOW KEYS FROM table WHERE Key_name = "PRIMARY"')->get();
【问题讨论】:
-
调试您的查询,而不是
->get()执行->toSql(),您将看到whereRaw()的工作原理并将其替换为selectRaw() -
您的查询转换为
SELECT * FROM table WHERE SHOW KEYS FROM table WHERE Key_name = "PRIMARY"。您可能需要改用DB::select('SHOW KEYS FROM table WHERE Key_name = "PRIMARY"') -
@apokryfos 这个解决方案对我有用,请注意您必须将数组作为第二个参数传递,否则会抛出错误
DB::select('SHOW KEYS FROM table WHERE Key_name = "PRIMARY"', []);