我知道它的基本知识,但无法弄清问题所在。似乎我做对了所有事情。我想与产品品牌建立关系,其中每个产品都具有属于品牌的品牌ID,并且在品牌模型中每个品牌都有很多产品。我使用belongsTo有很多关系可以做到这一点,但仍然显示出错误。

Product.php模型

namespace App;

use Illuminate\Database\Eloquent\Model;


class Product extends Model
{
     protected $fillable = [
        'sku',
        'name',
        'description',
        'brand_id',
        'image',
        'price',
        'stocks',
        'color',
        'size',
    ];

    protected $table = 'products';

    public function brand() {
        return $this->belongsTo('App\Brand');
    }
}


Brand.php模型

namespace App;

use Illuminate\Database\Eloquent\Model;

class Brand extends Model
{
    protected $fillable = [
        'user_id',
        'name',
        'description'
    ];

    protected $table = 'brands';

    public function products() {
        return $this->hasMany('App\Product','brand_id', 'id');
    }
}


routs.php

Route::get('/', function () {
   $products = \App\Product::all();

    echo $products->brand();

});

最佳答案

$productsProduct对象的collection,因此要获得每个对象的品牌,您需要遍历集合:

foreach ($products as $product) {
    echo $product->brand->name;
}

关于php - “方法品牌不存在。”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49208140/

10-12 19:58