2017-02-04 8 views
0

Clientモデルのテーブル内のすべてのクライアントがprojectsテーブル内の多くのプロジェクトに関連付けられているため、ClientモデルのモデルはProjectモデルとの間にhasManyという関係があります。Laravel Eloquent hasManyは1つの結果しか返しませんか?

方法は次のようになります。

Client.php:

public function projects() 
{ 
    return $this->hasMany('App\Projects', 'id', 'project_id'); 
} 

は非常に簡単に思えます。私は、コントローラからこれをしようとすると、しかし:

$projects = Client::find(1)->projects()->get() 

私は半ダース程度がなければならないとき、プロジェクトモデルから、最初の結果を1つの結果だけを取得します。 これは、find()に送信された整数を変更した場合でも発生します。

したがって、Eloquentは毎回projects表の最初の行に戻っています。なぜこれをやっているのか、そして/または関連するすべての結果をどのように得ることができるのですか?

答えて

0

hasMany(又はone-to-many)の関係は、「1対多」関係は、単一のモデルは、他のモデルの任意の量を所有関係を定義するために使用されるLaravel Documentation

としてAに定義されています。

この場合、Manyは、単に1つ以上を意味します。


すべてのプロジェクトにclient_idという参照があるとします。その場合、projects()機能を

return $this->hasMany('App\Projects', 'client_id'); 

に変更する必要があります。

+0

すべてのクライアントには多くのプロジェクトがあります。 –

+0

それで、どのようにして一致する結果が単一のモデルから返されますか? –

+0

@ΓΓ¬ICK私の更新された回答をチェックする – Daniel

関連する問題