php - 如何使用 Laravel 显示基于 hasmany 关系的记录
问题描述
如何根据订阅状态显示所有用户,比如在列表中首先显示所有高级用户,然后显示黄金、白银、免费用户等?
User::with('subscriptions')->get(); // List of all users with subscriptions.
// Users Model
public function subscriptions()
{
return $this->hasMany('App\Subscription');
}
// View
@foreach($users as $user)
{{ $user->name }}
@endoreach
解决方案
不确定您是如何设置表格的,但这应该适合您(使用level
订阅中调用的字段):
User::with(['subscriptions' => function($query){
$query->orderBy('subscriptions.level');
}])->get();
这应该根据订阅的“级别”进行排序。然后,在您的刀片视图中(假设某种表或其他东西),您可以调用用户名,然后根据关系调用订阅级别:
@foreach($users as $user)
<td>{{ $user->name }}</td>
<td>
@foreach($user->subscriptions as $sub)
{{ $sub->level}}
{{$loop->last? "":" | "}}
@endforeach
</td>
@endforeach
这是提供多个订阅的一种方法 - 在订阅级别的表格单元格中的每个订阅之间使用管道
推荐阅读
- events - 如何以编程方式触发 Angular 6 中的“点击”事件?
- mongodb - 如何创建聚合查询以将 mongo 集合转储到 solr
- react-native - React-Native 检测屏幕缺口
- javascript - 从字符串中提取所有电话号码
- binding - 如何使用 Angular 6 中的绑定更改 html 视图
- python - python点击命令详细帮助
- java - 与所有同义词的字符串组合
- java - 使用反射输出对象中变量的所有值
- heroku - Heroku 实例上的 Drush 和 Drupal 命令
- angular - Why Aren't FormControl#valueChanges' Subscriptions Garbage Collected?