gpt4 book ai didi

php - Laravel 5 : How to create a custom attribute for a collection, 然后用它排序

转载 作者:行者123 更新时间:2023-12-03 23:31:07 24 4
gpt4 key购买 nike

我想对模型的结果进行复杂的排序。

例如我有 \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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com