laravel 5.4 中的 ORM 不工作

ORM in laravel 5.4 not working

我有 2 个表 "Items" 和 "brands"。 items 包含产品详细信息,例如 item_id、name 和 brand_id,而 brands 包含 brandId 和 brand_name。我想获取可以加入品牌和商品的商品数据。

这是我的控制器。

public function filters($id){
    $items = Items::brands();       
    return $items;
}

这是我的模型。

public static function brands(){
    return $this->hasOne('App\Brands');
}

我在浏览器 运行 时得到了以下信息。 不在对象上下文中时使用 $this

这样试试:

模型文件:

public function brands(){
    return $this->hasOne('App\Brands');
}

控制器是这样的:

public function filters($id){
    $items = Items::select("*")->with('brands')->get()->toArray();       
    return $items;
}

删除静态关键字

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;
}