我不知道为什么,但是得到的结果是空的……我试图在supervisor
和branc_office
之间建立联系。
branch_office
只有一个supervisor
。
supervisors
可以管理许多branch_office
。
所以这是一对多的关系。
我的表是:
Branch_office
字段:
id_branch_office
id_supervisor
branch_office
User
字段:
id_user
name
id_supervisor
和id_user
之间的关系。
id_supervisor
(外键)----- id_user
(主键)
我的模特:
User.php
use Notifiable;
protected $primaryKey = 'id_user';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'full_name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* Get the comments for the blog post.
*/
public function branch_offices()
{
return $this->hasMany('App\Branch_Office', 'id_supervisor');
}
Branch_office.php
protected $table = 'branch_offices';
protected $primaryKey = 'id_branch_office';
/**
* Get the post that owns the comment.
*/
public function supervisor()
{
return $this->belongsTo('App\User', 'id_user');
}
在控制器中,我正在这样做:
$branch_office_detail = Branch_Office::find(1)->supervisor()->first();
但它显示的结果为空或空...并且有一个id为1的branch_office
所以我想知道,这是怎么回事?因为我已经逐步完成了此操作,因此无法正常工作。
谢谢。
答案 0 :(得分:1)
protected $table = 'branch_offices';
protected $primaryKey = 'id_branch_office';
public function supervisor()
{
return $this->belongsTo('App\User', 'id_supervisor', 'id_user');
}
在几乎所有关系中,第一个参数是模型,第二个是外键,第三个是本地键。同样,belongsTo函数仅返回一个记录或空值,您无需使用first()
BranchOffice::find(1)
返回分支;
BranchOffice::find(1)->supervisor
返回分支1的主管。
BranchOffice::with('supervisor')->find(1)
和主管一起回到办公室