如何按照Laravel中的特定值进行排序?

时间:2016-03-15 09:55:21

标签: php laravel sorting laravel-5.1

我需要允许用户按照Laravel中列的特定值进行排序。在SQL中,我可以实现这一点 order by column = 5 但是默认的Laravel orderBy函数似乎不支持这个。

我找到了orderByRaw函数并且可以通过它完成它,但由于我除了用户输入的值之外,我担心SQL注入的可能性。

该值是相关表的ID,因此我可以在模型上运行查找并从返回的模型中检索ID,这样用户的输入就不会直接添加到查询中。 e.g:

$role = Role::find($userInputValue);
$query->orderByRaw('role_id = ' . $role->id . ' desc');

有没有更简单的方法来实现这一目标?

1 个答案:

答案 0 :(得分:7)

从未通过语法听说过这个顺序,但你可以在原始查询中转义:(/ p>)

$query->orderByRaw('role_id = ? desc',[$role->id]);