Laravel Eloquent, wo auf dem Join-Tabelle

Ich habe zwei Personen in laravel 5 Eloquent, Foo und FooType mit oneToMany Beziehung.

class Foo {

   public function fooTypes(){
    return $this->hasMany('App\FooType');
   }
}

und FooType

class FooType{

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

Frage 1:
wie kann ich die Abfrage mit beredten query builder und kehren Foos hat type_id(diese Spalte ist in FooType Tabelle) 5;

etwas, was ich versuchte:

Foo::fooTypes()->where('type_id', 5);

und jeder link für eine gute tuts über Anfragen wie diese.

Frage zwei:
Ich finde heraus, dass dies schwer zu verwenden, Eloquent-Abfrage-generator ist es schlechte Praxis zu verwenden normal laravel Abfragen mit der DB, ich meine mit db kann ich nicht verwenden, orm oder sowas(oder was ist die Vorteile der Verwendung von eloquent Abfrage-generator):

$foos = DB::table('foos')
        ->join('fooTypes', 'foo_id', '=', 'foos.id')
        ->where('fooTypes.type_id', '=', '5')
        ->select('foos.*')
        ->get();

diese Art von Abfragen sind sehr einfach und es gibt mehrere tutorials darüber.

InformationsquelleAutor mohsenJsh | 2016-02-18
Schreibe einen Kommentar