我有我的班级“Product_reviews”,它绑定到“Products”类,如下所示:
Products.php:
公共功能product_reviews(){ 返回$ this-> hasMany(‘App \ Product_reviews’);}…
好,我知道了:
在 的 Products.php: 强>
return $this->hasMany('App\Product_reviews');
我在函数hasMany中添加了2个参数,如下所示:
return $this->hasMany('App\Product_reviews','product_id','id');
这些参数指定id的名称。
这篇文章真有帮助:
laravel-的hasMany和-属于关联参数
无论如何,我认为长期来说,做Davit和hktang所说的并用单数名称重命名我的课程可能会很好。谢谢你的回答。
您的模型应以单数形式命名,然后Laravel不会尝试在生成的SQL查询中使用复数形式的列名。
在你的情况下, Products 应该调用模型 Product 。请记住,模型代表 的 一 强> 记录在您的数据库中,因此单数形式是正确的。
Products
Product
您通过手动设置您的外部字段来覆盖此行为 $this->hasMany(..) 关系,绕过这个问题,但没有解决根本原因。
$this->hasMany(..)
此外,您应该避免使用基于snake_class的类名,因为它违反了PSR。您的 Product_reviews 应该调用模型 ProductReview 。
Product_reviews
ProductReview