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