Laravel eloquent 关系、模型,并一次获得它们

Laravel eloquent relationships, Models, and getting them in one try

终于,当我认为我已经掌握了 Laravel Eloquent 关系以及如何与他们合作时,我再次陷入几天前开始的同一个问题.

i-e 解决关系并为 1-N,N-N 关系分配/取消分配。

我的问题非常简单明了。一劳永逸传授此eloquent禅宗之道

我有一个模型 class "Vehicle.php" 和一个模型 class "User.php"

User hasMany Vehicle
Vehicle belongsTo User

这是我检索 "vehicle" 的方法。

$vehicle = $this->user->vehicles()->where('id',$params['vehicle_id'])->first()

下面是我尝试获取关联用户的方式。

return $vehicle->user()->first(); //return $vehicle->user

而且我不断收到

Call to a member function first() on null

帮我理清一下我对这部分的理解laravel。我浏览了很多线程/教程,但我总是再次陷入同样的​​困境。

Vehicle.php

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

User.php

public function vehicles()
    {
        return $this->hasMany('\App\Models\Vehicle');
    }

你忘了return你的人际关系

public function user()
{
        return $this->belongsTo(User::class);
}

public function vehicles()
{
        return $this->hasMany(Vehicle::class);
}