Si vous souhaitez utiliser Eloquent, vous devez le faire :
- Créer des modèles associés aux matériaux et à la table materials_lists.
- Établissez des relations entre les deux modèles de la manière suivante :
Dans la classe du modèle de matériau, vous devez avoir une relation de type "un à plusieurs" :
public function MaterialsList {
return $this->haveMany ('MatrialLists_ModelName')
}
et une relation de type "belongsTo" à l'inverse dans la classe modèle MaterialsLists.
public function Materials {
return $this->belongsTo ('Materials_ModelName')
}
3. Vous pouvez alors faire référence aux propriétés de l'objet MaterialsList à partir de l'objet Materials de la manière suivante :
$materialsListCollection = $materials ->MaterialsLists->all();
où $materials est une instantion du modèle des matériaux.
Si Eloquent n'est pas obligatoire, vous pouvez utiliser la méthode de jointure de Query Builder avec DB facade quelque chose comme ça :
$collection = DB::table('materials')
join('material_lists' , 'materials.id' , '=','material_lists,id') ->
join('colors' , 'colors.id' , '=','materials.colors,id') ->
select ('materials.id', 'material_lists.name', 'material_lists.cost',
'colors.code', 'colors.hex', 'colors.name' 'materials.color_cost',
'materials.estimation', 'materials.remarks')
->where('carpet_id' , '2')->get()
J'espère que cela vous aidera :)
0 votes
Pouvez-vous être plus précis sur ce que vous essayez de faire avec cette requête ? Veuillez également développer un peu votre question afin de fournir des informations sur le type d'aide que vous attendez.