laravel 无法在相关产品中发送用户名

laravel cant send users name in related products

我使用此代码,但无法在相关产品中发送用户名 我使用这个代码

  Creator: {{$product->users->name ?? ''}}

我无法显示产品的创建者 对于产品控制器,我使用这个:

public function index(){
        $products = Product::with(['users'])->get();
        return view('products.index', compact('products'));}

以及模型产品

public function users()
    {
        return $this->belongsTo(User::class);
    }

模型用户

public function products()
    {
        return $this->hasMany(Product::class);
    }

和table

Schema::create('products', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->unsignedInteger('user_id');
            $table->text('description');
            $table->integer('weight');
            $table->integer('price');
            $table->timestamps();
        });

这个错误见

正在尝试获取 属性 'name' 的非对象(视图:

您需要在迁移中设置外键:

Schema::create('products', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->unsignedInteger('user_id'); $table->foreign('user_id')->references('id')->on('users'); // <- HERE $table->text('description'); $table->integer('weight'); $table->integer('price'); $table->timestamps(); });

你的关系应该命名为 user (Singular) 而不是 users