繁体   English   中英

Laravel Eloquent与同桌的多重关系

[英]Laravel Eloquent multiple relations to same table

我有下表:

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_idcaseworker指向我的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对象。

谁能告诉我我做错了什么?

你可以用来获得个案工作者

rental_request::with(['caseworker','user'])->orderBy('id', 'desc')->get();

您的个案工作者关系也应定义为belongsTo关系。 rental_request模型具有外键,因此它属于外国模型。

public function caseworker()
{
    return $this->belongsTo('App\User', 'caseworker');
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM