我有laravel 7.7应用程序,其中包含多个用户,所有用户都有产品。现在我想在 www.domain.com/company/user-name 上显示来宾访客的用户配置文件。用户创建的所有产品应与用户配置文件一起显示在同一页面上。
所有产品都与user_id一起保存。
我的产品型号有:
// User relation
public function user(){
return $this->belongsTo('AddUser', 'user_id');
}
我的用户模型具有:
public function product(){
return $this->hasMany('AppProduct');
}
公司控制器有:
public function show($slug)
{
// Show individual company
$user = User::where('slug', $slug)->first();
return view('company.show')->with('user', $user);
}
迁移:
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('image');
$table->string('title');
$table->string('text');
$table->string('price');
$table->integer('user_id');
$table->timestamps();
});
}
我需要帮助了解如何从公司控制器的产品表中user_id抓取/显示用户的所有产品。不使用身份验证。
你可以像这样使用 foreach。
foreach ($user->product as $product) {
}
在控制器中。请注意,它的用法像->product
而不是像->product()
并注意在模型中使用products()
更合适。
内部刀片您可以使用。 因为你已经提到了表,我猜你需要迭代<td>
s 内部刀片。
@foreach ($user->product as $product)
@endforeach
像这样试试
模型用户
public function user(){
return $this->belongsTo(User::class);
}
模型产品
public function product(){
return $this->hasMany(Product::class, 'user_id');
}
如果不对,就把你的迁徙。