【发布时间】:2017-10-10 18:22:22
【问题描述】:
我有使用 Laravel 5.3 的稳定项目。
今天决定将 Laravel 升级到 5.4 再升级到 5.5。我正在关注官方升级指南。
在 5.4 升级后,一切似乎都可以正常工作.. 除了一件事。我的多个 belongsToMany 关系之一现在产生了错误的 sql。
我的模型App\Situation 有关系:
public function feedbacks()
{
return $this->belongsToMany('App\Feedback');
}
和App\Feedback 型号:
public function situations()
{
return $this->belongsToMany('App\Situation');
}
当然,我有表 feedbacks、situations 和 feedback_situation。
在升级之前这段代码很好:
dd($situation->feedbacks);
但现在它产生了异常:
未找到基表或视图:1146 表“example.feedback” 不存在(SQL:选择
feedback.*,feedback_situation.situation_id作为pivot_situation_id,feedback_situation.feedback_id作为pivot_feedback_id来自feedback内部连接 feedback_situationfeedback.id=feedback_situation.feedback_id在哪里feedback_situation.situation_id= 383)
这很奇怪,因为其他关系有效,而这一关系在 5.3 上有效。
【问题讨论】:
-
它在搜索表反馈而不是反馈s
-
这就是我问的原因。它应该搜索反馈表。它正在搜索 L5.3 的反馈表!
-
将受保护的
$table = 'feedbacks';添加到您的反馈模型中 -
成功了。谢谢你。请发表你的答案。如果你知道它为什么坏了,我很乐意读它:)
-
还不知道为什么坏了:(
标签: php laravel laravel-5 orm laravel-5.4