Laravel-从另一个模型获取模型属性

时间:2019-05-20 16:39:55

标签: php laravel laravel-5 eloquent

ModelAbelongsTo之间具有关系ModelB。有什么方法可以从ModelA访问该属性?像这样:

$this->model_b->model_b_attribute;

还有,有一种方法可以将模型链接到属性?如果我从belongsToModelBModelC关系,我可以这样做:

$this->model_b->model_b_attribute->model_c;

编辑:

我的代码:

ModelA将是:

class LeaseTenant extends Model {

    protected $appends = ['is_deposit_paid'];

    public function lease_request()
    {
        return $this->belongsTo('App\Models\LeaseRequest');
    }

    public function getIsDepositPaidAttribute()
    {
        return $this->email == $this->lease_request->security_deposit_entry->bank_account->user->email;    
    }
}

还有ModelB

class LeaseRequest extends Model {

    protected $appends = ['security_deposit_entry'];

    public function getSecurityDepositEntryAttribute()
    {
        return Rent
                 ::where('property_id', $this->property_id)
                 ->where('lease_request_id', $this->id)
                 ->where('type', 'security_deposit')
                 ->orderBy('created_at', 'asc')->first();
    }
}

我想从Rent访问LeaseTenant表。

1 个答案:

答案 0 :(得分:1)

如果您在sizeEndbelongsTo之间有ModelA关系:

ModelB

然后,您还可以访问该关系以获得# ModelA.php public function modelB() { return $this->belongsTo(ModelA::class); } 实例,从中可以访问ModelA属性。

ModelA

此外,如果您在ModelB中还具有另一个RelationshipTo关系,则可以执行以下操作:

$modelA = ModelA::find(1);
$name = $modelA->modelB->name;
//                      ^^^^^^ modelB attribute