当我使用orderByRaw函数时,我遇到Eloquent / QueryBuilder的问题我得到异常列不存在,但该列已存在于数据库中。
以下是例外:
$orderedStatuses = implode(',', [4]);
$users->orderByRaw(\DB::raw("FIELD(status, $orderedStatuses)"));
进入数据库的status列是整数。 这是我的代码:
DELIMITER $$
CREATE TRIGGER Total
BEFORE INSERT ON `despesas` FOR EACH ROW
BEGIN
SET Total = Abertura_Processo+Telefone+Correspondencia+Cartorio+Conservatorio+Servico_Financas+Taxas_Emolumentos+Honorarios;
END;
$$
DELIMITER ;
...另外,如果我使用users.status,我也会遇到同样的错误。
有人可以帮助我吗?
由于
答案 0 :(得分:1)
你混合了两种方法。
$users->orderBy(\DB::raw("FIELD(status, $orderedStatuses)"));
或者
$users->orderByRaw("FIELD(status, $orderedStatuses)");
答案 1 :(得分:0)
orderByRaw
期望原始SQL,你必须在orderByRaw
的参数中传递字符串。
示例:
$users->orderByRaw('field1 ASC, field2 DESC, field3 DESC,...');