【发布时间】:2016-05-13 10:31:42
【问题描述】:
所以,直接进入问题。有人告诉我,如果我们只想拥有桌子的ids,我们不需要创建pivot table。 laravel 本身可以处理这种情况。我不知道这是如何工作的。我有一张桌子community 和另一张桌子idea。关系是这样的;
一个社区可以包含许多想法,而一个想法可以在许多地方找到 社区。p>
想法模型中的关系:
public function community() {
return $this->belongsToMany('App\Community')->withTimestamps();
}
社区模型中的关系:
public function idea() {
return $this->belongsToMany('App\idea');
}
现在我想获取与单个社区相关的所有记录以显示在其页面上假设社区是Arts。
这是控制器功能:
public function showCommunities($id) {
$community = Community::findOrFail($id)->community()->get();
return view('publicPages.ideas_in_community', compact('community'));
}
当我将->community()->get() 附加到Community::findOrFail($id) 时,它会抛出错误
SQLSTATE[42S02]: laravel 未找到基表或视图
任何帮助将不胜感激。
编辑:
从逻辑上讲,这段代码Community::findOrFail($id)->community()->get() 应该是这样的Community::findOrFail($id)->idea()->get()。现在它是真的,但它几乎没有问题。它会引发错误
致命错误:找不到类“App\idea”
【问题讨论】:
-
你确定上面的代码是正确的吗?您正在尝试使用 Community::findOrFail($id)->community()->get() 从社区获取社区,并且社区模型中没有社区关系。此外,对于多对多关系,您确实需要一个中间表来存储关系。
-
我不确定这种关系,这就是为什么我将它们发布在这里以获得像你这样的老年人的帮助。有 Laravel 经验的人说,如果我们只想存储他们的
idslaravel 可以自己管理它,我们不需要中间表。我也试过Community::findOrFail($id)->community()->get()它说App/idea没有找到。但我已将其包含在@jedrzej.kurylo -
您可能误解了对方在说什么。事实上,Laravel 并不要求你定义一个中间模型类,但它确实要求你有一个中间表。我会在一秒钟内发布答案
标签: php laravel laravel-5 eloquent