我需要让 Laravel Eloquent 地实现两个表的内部连接
select materials.id,
material_lists.name, material_lists.cost,
colors.code, colors.hex, colors.name,
materials.color_cost, materials.estimation, materials.remarks
from materials
inner join
material_lists on materials.material_id = material_lists.id
inner join
colors on colors.id = materials.color_id
where carpet_id = '2'
最佳答案
如果你想使用 Eloquent 那么你应该:
在 Material 模型类中,您应该具有一对多类型的关系:
public function MaterialsList {
return $this->haveMany ('MatrialLists_ModelName')
}
和“belongsTo”类型关系在 MaterialsLists 模型类中以相反的方式。
public function Materials {
return $this->belongsTo ('Materials_ModelName')
}
3.你可以像这样从 Materials 对象中引用 MaterialsList 对象属性:
$materialsListCollection = $materials ->MaterialsLists->all();
其中 $materials 是 Materials Model 的实例。
如果 Eloquent 不是强制性的,那么您可以使用 Query Builder 中的 join 方法与 DB 外观类似:
$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()
希望能帮助到你 :)
关于php - Laravel Eloquent 地实现两张表的内连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47478098/