如何通过Laravel一个特定的值进行排序?

问题描述 投票:2回答:1

我需要允许用户通过在Laravel列的特定值的命令。在SQL我可以order by column = 5但是默认的Laravel排序依据的功能似乎并不支持这一实现这一目标。

我发现orderByRaw功能,并且可以通过这样做,但因为我的除外值作为来自用户的输入,我担心SQL注入的可能性。

该值是相关表格的ID,所以我可以在模型上运行查找并返回模型的检索ID,以便用户的输入没有得到直接添加到查询。例如。:

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

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

php laravel sorting laravel-5.1
1个回答
7
投票

从来没有听说过这个命令的语法,但你可以逃避像这样的原始查询的事情:

$query->orderByRaw('role_id = ? desc',[$role->id]);
© www.soinside.com 2019 - 2024. All rights reserved.