作者:向陽阿莫_545 | 来源:互联网 | 2022-11-29 19:09
首先,这不是Laravel 4的重复:如何使用Eloquent ORM"排序"
我有这个模型用户,然后我有这个其他模型的想法.我正在编写一个包含用户详细信息的视图,我想发布用户建议的所有想法.现在,这些想法都处于状态,第一个状态是"DRAFT",这意味着只有发布该想法的用户才能查看它,这个想法不应该显示给查看该配置文件的其他用户.
使用雄辩,我可以做类似的事情:
@foreach($user->idea as $idea)
...display details...
@endforeach
我的问题是,这种方法会循环所有的想法,并按照它们的介绍顺序循环.我可以添加一个@if
只显示我想要的东西,比如
@foreach($user->idea as $idea)
@if($idea->status !='DRAFT')
...show the idea...
@endif
@endforeach
但我不认为这是明智的做法,我想做点什么
$ideas = $user->idea->where('status', '<>', 'DRAFT')
然后循环通过$ideas
变量,或者至少,我喜欢像somtehing一样
$ideas = $user->idea->orderBy('created_at', 'desc')
但我不知道该怎么做.
1> Chin Leung..:
你可以这样做:
$ideas = $user->idea()
->where('status', '<>', 'DRAFT')
->orderBy('created_at', 'desc')
->get();
使用->idea()
它时会启动查询.
有关如何查询关系的更多信息:https://laravel.com/docs/5.7/eloquent-relationships#querying-relations