我有下表:
Table: rental_request
Columns:
id int(11) AI PK
user_id int(11)
address text
number varchar(45)
kvm varchar(45)
rental varchar(45)
zip varchar(45)
city varchar(45)
timestamp datetime
created_at datetime
updated_at datetime
caseworker int(11)
user_id
和caseworker
指向users
表。
现在我正在尝试在Laravel
应用程序中创建此关系:
class rental_request extends Model
{
protected $table = 'rental_request';
protected $fillable = ['user_id','address', 'number', 'kvm','rental','zip','city', 'caseworker'];
public function user()
{
return $this->belongsTo('App\User', 'user_id');
}
public function caseworker()
{
return $this->hasOne('App\User', 'user_id', 'caseworker');
}
}
在我的控制器中,我使用以下方法从表中收集数据:
rental_request::orderBy('id', 'desc')->get();
现在,这实际上有效,但仅适用于user
,而不适用于caseworker
。
这意味着我的结果中有user
个对象,但没有caseworker
个对象。
有谁能告诉我我做错了什么?
答案 0 :(得分:3)
你可以用来获得个案工作者
rental_request::with(['caseworker','user'])->orderBy('id', 'desc')->get();
答案 1 :(得分:2)
您的个案工作者关系也应定义为belongsTo
关系。 rental_request
模型具有外键,因此它属于外部模型。
public function caseworker()
{
return $this->belongsTo('App\User', 'caseworker');
}