所以我有这个问题,通过人员表使用预先加载来获取用户数据。
控制器:
public function staff()
{
$salon = Salon::find(Session::get('salon'));
$staff = Staff::where('salon', $salon->id)->with('user')->get();
return view('dashboard.salon.staff', compact('staff'));
}
查看:
@foreach ($staff as $staff)
{{ $staff->user->photo }}
@endforeach
型号:
class Staff extends Model {
protected $table = 'salonStaff';
public function user()
{
return $this->belongsTo('App\User');
}
}
我尝试使用dd($ staff)进行故障排除,并且控制器中的用户关系显示为null,并且在foreach中执行dd($ staff-> user)会导致" 1",没有别的
答案 0 :(得分:0)
如果用户列中的主键是' user',则应在用户模型中指定
protected $primaryKey = 'user';
如果没有,当使用关系时,Eloquent需要传统的外键,例如' user_id' ($ tablename_id)
可以肯定的是,尝试在模型关系中指定外键:
return $this->belongsTo('App\User', 'user');
其中第二个参数是表中的真实外键。
也可以尝试像这样更改您的查询
$staff = Staff::where('salon', $salon->id)->user()->get();