2016-08-07 38 views
1

Angenommen, ich habe ein Modell mit dem Namen 'Commodity', das category_id zu einer Kategorie gehört.Laravel 5.2 Suche in verwandter Entität

In Commodity.php I definiert diese Beziehung:

public function category(){ 
    return $this->belongsTo('App\Category'); 
} 

Nun, ich die Waren finden wollen, die ihre Kategorienamen 'Glas'

Ich habe versucht, diese beinhalten:

$items = Commodity::orderBy('id', 'desc')->category()->where('title', 'LIKE', '%glass%'); 

Aber es füllt diesen Fehler:

Call to undefined method Illuminate\Database\Query\Builder::category()

Antwort

2

Bitte lesen Sie die offizielle Dokumentation, die querying relations behandelt.

Sometimes you may wish to eager load a relationship, but also specify additional query constraints for the eager loading query. Here's an example:

$users = App\User::with(['posts' => function ($query) { 

    $query->where('title', 'like', '%first%'); 

}])->get(); 

Also, Deine Frage zu Ich würde vorschlagen, zunächst versuchen:

$commodities = App\Commodity::with(['category' => function ($query) { 

    $query->where('title', 'like', '%glass%'); 

}])->orderBy('id', 'desc')->get();