2016-05-27 26 views
0

でサブモデルを取得し、私はモデルLaravel - 雄弁値

class ModelOne extends Model 
{ 
    public function modelsTwo() { 
     return $this->hasMany(ModelTwo::class, 'modeltwo_id'); 
    } 
} 

に関係を持っているがModelTwoの属性に基づいてModelOneからModelTwoを取得することがかのうですか?例えば、このような

何か:

$mone = ModelOne::find($id); 
$mtwo = $mone->modelsTwo->findByName('foo'); 

だから$ mtwoは、プロパティ$mone->modelsTwoとしてそれを呼び出す場合は、[はい、それはすべて返されます名前=「foo」で

答えて

2

でModelOneからModelTwoを持っていますModelTwoレコードをCollectionと呼び、関数$mone->modelsTwo()として呼び出すと、クエリビルダが返されます。両方ともwhere()という特定の名前でレコードを見つけるための関数があります。

$mone = ModelOne::find($id); 
$mtwo = $mode->modelsTwo->where('name', 'foo')->first(); 

// or 
$mtwo = $mode->modelsTwo()->whereName('foo')->first(); 

あなたはすべてのレコードを引っ張るしたい場合は、単にプロパティとしてそれを呼び出すが、あなたがしたい場合は、複雑なクエリが関数としてそれを呼び出します。

+0

私が探していたものをありがとうございました! –