table 中的 "id" 列是否必须与 BackPack 一起使用?
Is having an "id" column in a table mandatory to work with BackPack?
我有一个包含 color_id
和 list_id
列的 table。当我在 Laravel BackPack 中加载具有该特定模型的页面时,它会引发错误:
SQLSTATE[42703]: Undefined column: 7 ERROR: column "id" does not exist LINE 1: select * from "color_list" order by "id" desc l... ^ (SQL: select * from "color_list" order by "id" desc limit 10)
总的来说,这是正确的。我没有 id
列,因为它是一个枢轴 table。我假设添加自定义排序可以解决问题,所以我在控制器的 setup()
方法中添加了以下行:
$this->crud->addClause('orderBy', 'color_id', 'DESC');
这并没有解决问题,BackPack 仍在尝试搜索 id
列。
SQLSTATE[42703]: Undefined column: 7 ERROR: column "id" does not exist LINE 1: ...color_list" order by "color_id" desc, "id" desc ... ^ (SQL: select * from "color_list" order by "color_id" desc, "id" desc limit 10)
有没有办法解决?我真的需要在 table 中添加 id
列吗?
通过将此添加到我的模型中,我暂时能够解决它:
protected $primaryKey = 'color_id';
但这真的是唯一的解决办法吗?
我有一个包含 color_id
和 list_id
列的 table。当我在 Laravel BackPack 中加载具有该特定模型的页面时,它会引发错误:
SQLSTATE[42703]: Undefined column: 7 ERROR: column "id" does not exist LINE 1: select * from "color_list" order by "id" desc l... ^ (SQL: select * from "color_list" order by "id" desc limit 10)
总的来说,这是正确的。我没有 id
列,因为它是一个枢轴 table。我假设添加自定义排序可以解决问题,所以我在控制器的 setup()
方法中添加了以下行:
$this->crud->addClause('orderBy', 'color_id', 'DESC');
这并没有解决问题,BackPack 仍在尝试搜索 id
列。
SQLSTATE[42703]: Undefined column: 7 ERROR: column "id" does not exist LINE 1: ...color_list" order by "color_id" desc, "id" desc ... ^ (SQL: select * from "color_list" order by "color_id" desc, "id" desc limit 10)
有没有办法解决?我真的需要在 table 中添加 id
列吗?
通过将此添加到我的模型中,我暂时能够解决它:
protected $primaryKey = 'color_id';
但这真的是唯一的解决办法吗?