如何在一对多关系中过滤拉拉维尔雄辩的查询



我陷入了雄辩的查询!我想仅显示具有特定role_id的用户的所有相关数据。预订:(有created_by字段(

预订模式:

 public function user()
{
    return $this->belongsTo('AppUser','created_by');
}
  public function division()
{
    return $this->belongsTo('AppDivision','division_id');
}

和用户表有一个列role_id。视图:

 @if(!empty($allBooking) && count($allBooking)>0)
                @foreach($allBooking as $key=>$booking)
                    <tr>
                        <td>{{$key+1}}</td>
                        <td class="text-capitalize">
                            @if($booking->division && $booking->division->division_name )
                                {{$booking->division->division_name}}
                            @else
                                N/A
                            @endif
                        </td>

如何使用role_id 1获取所有预订数据?我想用纯粹的雄辩来获得从另一个到许多实现的部门名称。

===============================edit

预算模式:

 public function user()
    {
        return $this->belongsTo('AppUser','created_by');
    }
    public function subHead()
    {
        return $this->belongsTo('AppSubHead','sub_head_id');
    }

副标题型号 ::

 public function head()
{
    return $this->belongsTo('AppHead','head_id');
}

工作模式:

    public function subHead()
{
    return $this->belongsTo('AppSubHead','sub_head_id');
}
public function bookings()
{
    return $this->hasMany('AppBooking','work_id');
}

如果role_idusers表中,请使用whereHas()

Booking::whereHas('user', function($q) use($roleId) {
    $q->where('role_id', $roleId);
})->get();

最新更新