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
我使用此代码,但无法在相关产品中发送用户名 我使用这个代码
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