0
在Laravel 4,与许多一对多关系工作时,我想做到以下几点:多对多的关系,其中Laravel 4
/* get all skills for one specific topic */
Route::get('/api/topics/{topicSlug}/skills', function($topicSlug)
{
$skills = Skill::where('topic.slug', '=', $topicSlug)->get();
}
现在的问题是,topic.slug
明显ISN” t表格skills
中的一列。相反,slug
是topics
表中的一列,其通过名为skills_topics
(其中包括skill_id
和topic_id
)的数据透视表与skills
表相关。
我试过一些变化,但我只是无法得到正确的查询。 如果我想获得某个特定主题的所有技能,查询如何看起来像?
的车型有:
class Skill extends Eloquent {
public function topics()
{
return $this->belongsToMany('Topic');
}
}
和
class Topic extends Eloquent {
public function skills()
{
return $this->belongsToMany('Skill');
}
}
你需要改变'topic.slug'只是'slug'。现在,要获得包含属于$ topic的所有技能的json响应,我只需要执行'return $ topic-> skills;'。我正在接近完全错误的方式。非常感谢,真的帮助:) – Ben 2013-04-05 13:50:29
是的,我复制/粘贴你的部分;) – bstrahija 2013-04-05 15:07:05