0
我在嘗試從數據庫獲取記錄時遇到了一些麻煩。這裏的表模式:Laravel嵌套關係其中5.5返回所有記錄
users
--------------
id
username
password
email
divisions
--------------
id
name
employee
--------------
name
birth_date
status
class
division_id
user_id
projects
--------------
id
title
body
user_id
因此,對於關係的解釋:
好吧,我想基於表員工用下面的代碼division_id獲取項目:
# query code
$division_id = 10;
$items = Project::with(['user.employee.division' => function($query) use ($division_id) {
$query->where('id', $division_id);
}])->get();
我已將所需的belongsTo,hasMany或hasOne添加到模型中。
# User.php
class User extends Authenticatable
{
public function employee()
{
return $this->hasOne('App\Employee', 'user_id');
}
public function projects()
{
return $this->hasMany('App\Project', 'user_id');
}
}
# Division.php
class Division extends Model
{
public function employee()
{
return $this->hasMany('App\Employee', 'division_id');
}
}
# Employee
class Employee extends Model
{
public function user()
{
return $this->belongsTo('App\User', 'user_id');
}
public function division()
{
return $this->belongsTo('App\Division', 'division_id');
}
}
# Project.php
class Project extends Model
{
public function user()
{
return $this->belongsTo('App\User', 'user_id');
}
}
那麼,什麼問題?
下面是這個事情,當我運行查詢代碼時,我得到所有的記錄和關係的工作關係返回null。
如果有人認爲我的代碼不對,請賜教。
謝謝。
什麼輸出你期待,因爲它規定給我的所有用戶和他們的項目下的分工10. –
當我運行查詢代碼, division_id的where子句不起作用。結果返回所有部門下的用戶及其項目,不會被過濾。這是否有可能因爲環境? – DefaultB2