编程语言
首页 > 编程语言> > php – 如何从连接表中选择列:laravel eloquent

php – 如何从连接表中选择列:laravel eloquent

作者:互联网

我有一个不同的问题从this.情况是相同的,但我需要更多的结果过滤.

让我解释.

考虑我有2个表

车辆

 id
 name
 staff_id
 distance
 mileage

员工

 id
 name
 designation

我想从两个表(模型)中只选择id和name.
Vehicle Model包含与Staff模型的belongsTo关系.

class Vehicle extends Model
{
    public function staff()
    {
      return $this->belongsTo('App\Staff','staff_id');
    }
}

我加入了这个

Vehicle::where('id',1)
            ->with(['staff'=> function($query){
                            // selecting fields from staff table
                            $query->select(['staff.id','staff.name']);
                          }])
            ->get();

当我将字段放入 – > get()时这样

->get(['id','name'])

它过滤车辆表但没有产生员工表的结果.

有任何想法吗?

解决方法:

终于找到了..
在 – > get()中你必须像这样放置’staff_id’

Vehicle::where('id',1)
            ->with(['staff'=> function($query){
                            // selecting fields from staff table
                            $query->select(['staff.id','staff.name']);
                          }])
            ->get(['id','name','staff_id']);

由于我没有使用staff_id,因此无法执行连接,因此未显示人员表字段.

标签:php,laravel,eloquent,laravel-eloquent
来源: https://codeday.me/bug/20190527/1163575.html