table 中的 "id" 列是否必须与 BackPack 一起使用?

Is having an "id" column in a table mandatory to work with BackPack?

我有一个包含 color_idlist_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';

但这真的是唯一的解决办法吗?