Alnis Posted November 5, 2014 Report Posted November 5, 2014 (edited) 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. Edited November 6, 2014 by Alnis Quote
Kemito Posted November 6, 2014 Report Posted November 6, 2014 $query->where(‘advert.id’,’=’,’fieldValues.id’) Šajā daļā Tu ņem tabulas vai relācijas "advert" `id`, bet es nespēju ieraudzīt, kur tu viņu pielasītu ar "with" , vai ko tādu. Quote
Alnis Posted November 6, 2014 Author Report Posted November 6, 2014 Kemito, drukas kļuda bija ieviesusies, biju domājis: $query->where(‘goods.id’,’=’,’fieldValues.id’) Goods tabula man ir pati pirmā, kurai pašā sākumā es lieku klāt relācijas (relāciju ķēdi). Jā, man bija doma tajā where kaut kā uzrādīt tabulas 'goods' nosaukumu, kas acīmredzot tādā veidā, kā es daru, nav iespējams. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.