Search the Community
Showing results for tags 'relations'.
-
Ir tabulas: 1. goods (id, name, category_id); 2. categories (id, name) 3. field_binding (id, category_id, field_id) 4. fields (id, name) 5. field_values (id, field_id, good_id) Man ir sekojoši relations: Class Good extends Eloquent{ public function category(){ return $this->belongsTo(‘category’); } public function fieldValues(){ return $this->hasMany(‘FieldValues’) } } Class Category extends Eloquent{ public function fields(){ return $this->belongsToMany(‘Fields’, ‘field_binding’, ‘category_id’, field_id); } } Class Field extends Eloquent{ public function fieldValues(){ return $this->hasMany(‘FieldValues’, ‘field_id’); } } Class FieldValues extends Eloquent{ public function fieldValues(){ return $this->belongsTo(‘good’); } } Pielotojums: 1. return Good::with(‘category.fields.fieldValues’)->get(); te atgriež sarakstu, kur parādās arī tādas fieldValues, kuras nav saistītas ar good. 2. return Good::with(‘fieldValues’)->get(); Te atgriež sarakstu ar visām field values, bet man nevajag visas, man vajag tikai to fieldu, kuri ir piesiastīti kategorijai, kas piesaistīta goods, values 3. return Good::with(array(‘category.fields.fieldValues’=>function($query){ $query->where(‘goods.id’,’=’,’fieldValues.id’) }))->get(); Bet šis fragments, protams, nestrādā: ‘goods.id’,’=’,’fieldValues.id’. Tātad man vajag izvadīt tos fieldu values, kas attiecās uz konkrēto good un kuru fieldi ir piesaistīti konkrētajai Category, kas piesaistīta goods. Idejas? Paldies! p.s. pa vidu iespējams ir sintakses kļudas, bet tam šobrīd nav nozīmes.
- 2 replies
-
- pivot table
- laravel
-
(and 1 more)
Tagged with: