2017-05-15 11 views
2

最後に、私がLaravel Eloquent Relationshipsのハングアップとそれらを扱う方法を持っていると思ったとき、私は再び同じ問題を抱えていました。数日前。Laravel eloquent relationships、Models、およびそれらを1回の試行で受け取る

i-eリレーションシップの取得と1-N、N-Nリレーションシップの割り当て/割り当て解除。

私の質問は本当に簡単で簡単です。この雄弁な禅のやり方を教えてください。

私はモデルクラス「Vehicle.php」を持っているとモデルクラス「User.php」

User hasMany Vehicle 
Vehicle belongsTo User 

ここでは、私は私の「車」を検索する方法です。

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

ここで、関連するユーザーを取得しようとしています。

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

そして私はlaravelのこの部分の

Call to a member function first() on null 

ヘルプ、私は明確に私の理解を得続けます。私は多くのスレッド/チュートリアルを通過しましたが、私は同じ溝に再び落ちていきます。

Vehicle.php

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

User.php

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

を忘れてしまいましたか? first()を使用している理由は、クエリは1つのレコードのみを返します。 –

+0

データベースに車両に関連付けられたユーザーがいますか?それはエラーが言っているものですから。また、belongsTo関係については、 '$ vehicle-> user'、大括弧と最初の必要はありません。ドキュメントもかなり明確です:https://laravel.com/docs/5.4/eloquent-relationships#one-to-many-inverse – Christophvh

+0

コードのコメント部分に見られるように、私は$ vehicle-> userを試しました。何も動作していないようです。はい '車両'テーブルに 'user_id'列があり、正しく入力されています。そして、はい、それはどのようにすべきかについて明確になっていますが、私は何かを誤解する必要があります。私は同じことのために落ち続ける。 –

答えて

1

あなたは車両のみユーザー権限に属するあなたの関係を返すために

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

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

Ahhh .... $%$#%^。今私は本当に馬鹿だと感じる。 –

+0

簡単に間違えてしまいました。 – Christophvh

関連する問題