Php 尽管我离开了,我还是输了
我使用Php 尽管我离开了,我还是输了,php,mysql,laravel,Php,Mysql,Laravel,我使用left join根据一个公共列组合两个表,但我似乎丢失了左表中的主键id。每隔一列返回一次 我的控制器: $prod_manu = $request->prod_manu; return $data = Product::leftJoin('manufacturers','products.Manufacturer_id','=','manufacturers.id') ->where('products.Manufacturer_id',$prod_
left join
根据一个公共列组合两个表,但我似乎丢失了左表中的主键id
。每隔一列返回一次
我的控制器:
$prod_manu = $request->prod_manu;
return $data = Product::leftJoin('manufacturers','products.Manufacturer_id','=','manufacturers.id')
->where('products.Manufacturer_id',$prod_manu)
->get();
产品型号:
class Product extends Model{
public function types(){
return $this->belongsTo('App\types','Type_id');
}
public function manufacturers(){
return $this->belongsTo('App\manufacturers','Manufacturer_id');
}
}
这可能是因为
产品
和制造商
都有一个id
列,所以其中一个会被覆盖
您可以使用eloquent的with
方法,而不是使用左连接
如果您有关系和类结构,您应该能够访问制造商的产品,如下所示:
$manufacturer = Manufacturer::where('id', $prod_manu)->with('products')->get();
return $manufacturer->products;
还请注意,类名应始终为单数,并以laravel中的大写字母开头<代码>应用程序\制造商
不应有效。请阅读我上面链接的关于建立雄辩关系的文章。第二个表中的条件需要放在on
子句中,而不是where
子句中。我编辑了我的关系定义,这似乎解决了问题。非常感谢。