作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想对模型的结果进行复杂的排序。
例如我有 \App\Classes::where(something)
,从那里我想为每个类附加一个附加属性,然后使用该属性进行排序,即(受 https://laracasts.com/discuss/channels/eloquent/is-there-any-way-to-add-attribute-to-objects-in-collection 中的方法启发) )
$classes = \App\Classes::where(something)
foreach ($classes as &$class) {
$classes['custom_score'] = some logic that changes per $class;
}
$classes_sorted = $classes->orderBy('custom_score')
但是这段代码给了我
SQL error: "Column not found: 1054 Unknown column 'custom_score' in 'order clause'"
我不想为这个 custom_score 实际写入数据库,因为它会随着每次用户交互而经常且唯一地改变。
什么是好的解决方案?
提前致谢..
最佳答案
使用 transform()
领取方式:
$collection->transform(function($i) {
$i->custom_score = // Some logic here
return $i;
});
关于php - Laravel 5 : How to create a custom attribute for a collection, 然后用它排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48642719/
我是一名优秀的程序员,十分优秀!