如何使用 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


aluckdog
浏览 140回答 1
1回答

四季花海

不确定您是如何设置表格的,但这应该适合您(使用level订阅中调用的字段):User::with(['subscriptions' => function($query){&nbsp; &nbsp; $query->orderBy('subscriptions.level');}])->get();这应该根据订阅的“级别”进行排序。然后,在您的刀片视图中(假设某种表或其他东西),您可以调用用户名,然后根据关系调用订阅级别:@foreach($users as $user)&nbsp;<td>{{ $user->name }}</td>&nbsp;<td>&nbsp; &nbsp; &nbsp; @foreach($user->subscriptions as $sub)&nbsp; &nbsp; &nbsp; &nbsp; {{ $sub->level}}&nbsp; &nbsp; &nbsp; &nbsp; {{$loop->last? "":" | "}}&nbsp; &nbsp; &nbsp; @endforeach&nbsp;</td>@endforeach这是提供多个订阅的一种方法 - 在订阅级别的表格单元格中的每个订阅之间使用管道
打开App,查看更多内容
随时随地看视频慕课网APP