在Product.php
public function reviews(){
return $this->hasMany(Review::class);
}
在Review.php
public function product(){
return $this->belongsTo(Product::class);
}
public function user(){
return $this->belongsTo(User::class);
}
在User.php
public function reviews(){
return $this->hasMany(Review::class);
}
在 Controller 中
$product = Product::where('slug', $request->slug)->with('category')->with('reviews.user')->first();
在 Blade 中
{{$review->user->name}}
现在在 blade 中它返回 null。
提到 评论表有 product_id, reviewed_by
现在,我如何从这个关系模型中获取评论者姓名?请帮我解决这个问题。
最佳答案
如果你有不同于 laravel 默认字母顺序的外键,你需要在 hasMany 和 belongsTo 关系上指定外键
public function user()
{
return $this->belongsTo(User::class, 'reviewed_by');
}
//In User Model
public function reviews()
{
return $this->hasMany(Review::class,'reviewed_by');
}
//In Product Model
public function reviews()
{
return $this->hasMany(Review::class,'product_id');
}
https://stackoverflow.com/questions/62782953/
相关文章:
ios - Flutter NSException : Configuration fails. 可
postgresql - 使用实体中的默认值与 PostgreSQL hibernate
android - CameraX - 在纵向模式下锁定 Activity 时仅旋转预览
amazon-web-services - terraform 可以复制 s3 存储桶的内容吗?
python - 将 Pandas 数据框字符串拆分为单独的行
javascript - 如何使用 react 模态显示没有背景效果的模态?