相关疑难解决方法(0)

MySQL在Eloquent中按字段排序

当我想在MySQL查询中定义自定义排序顺序时,我可以这样做:

ORDER BY FIELD(language,'USD','EUR','JPN')
Run Code Online (Sandbox Code Playgroud)

那个雄辩的ORM版本是什么?

更新:

这是解决方案,它也适用于各种领域的订购:

$events = Event::with( 'type', 'location' )
               ->orderBy( 'event_type_id' )
               ->orderByRaw( "FIELD(status, 'good', 'bad', 'hidden', 'active', 'cancelled')" )
               ->orderBy( 'date' );
Run Code Online (Sandbox Code Playgroud)

php mysql sql eloquent

13
推荐指数
2
解决办法
1万
查看次数

通过ID数组对Laravel Collection进行排序

是否可以使用单独的ID数组来订购关系集合,同时仍然通过关系访问?

设置Checklist有很多ChecklistItems,我以正常的方式访问这种关系:

foreach ($list->items as $item) {
    // More Code Here
}
Run Code Online (Sandbox Code Playgroud)

现在,$item作为属性$list下属性的存在的期望顺序$list->item_order,它只是$item用户所需顺序中的ID 数组,特定于$list被迭代.

是否有一种可行的方法来根据模型所具有的数组来定位$items附加的?$listitem_order$list

(我不能只在'item'表中添加'order'列,b/c顺序根据特定的'list'关系进行更改).

谢谢你的帮助!

php laravel

9
推荐指数
2
解决办法
7704
查看次数

Laravel:如何使用whereIn方法获得自定义排序的eloquent集合

我有一系列产品ID,我需要检索模型集合.数组是这样的:

$ids = array(9, 2, 16, 11, 8, 1, 18);
Run Code Online (Sandbox Code Playgroud)

现在,我正在使用以下代码行来获取集合.

$products = Product::whereIn('id', $ids)->get();
Run Code Online (Sandbox Code Playgroud)

但它根据他们的ID对产品进行了分类.如:1, 2, 8, 9, 11, 16, 18.我需要的是与$ids数组中相同的顺序即9, 2, 16, 11, 8, 1, 18.

我该怎么做以获得与数组中相同的顺序?

php mysql collections laravel laravel-5

6
推荐指数
1
解决办法
434
查看次数

标签 统计

php ×3

laravel ×2

mysql ×2

collections ×1

eloquent ×1

laravel-5 ×1

sql ×1