ORM在laravel 5.4不工作
我有2个表“项目”和“品牌”。商品包含产品详细信息,如item_id,name和brand_id,而品牌包含brandId和brand_name。我想获取可加入品牌和商品的商品数据。ORM在laravel 5.4不工作
这是我的控制器。
public function filters($id){
$items = Items::brands();
return $items;
}
这是我的模型。
public static function brands(){
return $this->hasOne('App\Brands');
}
我在浏览器上运行时遇到以下情况。 当不在对象范围内使用$此
删除static关键字
public function brand(){
return $this->hasOne('App\Brands','brand_id');
}
在你的品牌,你需要
public function item(){
return $this->belongsTo('App\Items','brandId','brand_id');
}
和控制器:
public function filters($id){
$items = Items::all()->with('brands')->get();
return $items;
}
我认为物品'belongsTo'对品牌 –
当我放时,工作正常。 public function brands(){ return $ this-> hasOne('App \ Brands','brand_id','brand_id'); } –
你应该将它命名为'品牌',因为你有'1:1'1品牌1品牌, – madalinivascu
尝试这样的:
模型文件:
public function brands(){
return $this->hasOne('App\Brands');
}
和控制器这样的:
public function filters($id){
$items = Items::select("*")->with('brands')->get()->toArray();
return $items;
}
你有一个静态方法,并使用了$这个了,为什么你觉得会发生什么? – madalinivascu