use*_*500 2 php sql laravel eloquent laravel-5
我想对模型的结果进行复杂的排序。
例如,我有\App\Classes::where(something),然后我要为每个类添加一个附加属性,然后使用该属性进行排序,即(受https://laracasts.com/discuss/channels/eloquent/is-there中的方法启发任何将属性添加到集合中的对象的方法)
$classes = \App\Classes::where(something)
foreach ($classes as &$class) {
$classes['custom_score'] = some logic that changes per $class;
}
$classes_sorted = $classes->orderBy('custom_score')
Run Code Online (Sandbox Code Playgroud)
但是这段代码给了我
SQL错误:“找不到列:1054'order子句'中的未知列'custom_score'”
我不想为这个custom_score实际写入数据库,因为它会随着每次用户交互而经常且唯一地更改。
有什么好的解决方案?
非常感谢。
使用transform()收集方法:
$collection->transform(function($i) {
$i->custom_score = // Some logic here
return $i;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
495 次 |
| 最近记录: |