我有四张桌子:
最后,我想要一个具有以下属性的模型实例: food.name,users.name,mealtype.name
正常的sql将是:
SELECT f.name, u.name, m.name FROM foods f
INNER JOIN food_user fu ON f.id = fu.food_id
INNER JOIN users u ON fu.id = u.id
INNER JOIN mealtypes m ON fu.mealtype_id = m.id
感谢您的帮助!
答案 0 :(得分:4)
你可以用Eloquent和Query Builder做这样的事情,假设你有一个名为Food的模型:
$foods = Food::join('food_user', 'foods.id', '=', 'food_user.food_id')
->join('users', 'food_user.user_id', '=', 'users.id')
->join('mealtypes', 'food_user. mealtype_id', '=', 'mealtypes.id')
->get();
还有关于查询构建器的良好文档:http://www.laravel.com/docs/queries
答案 1 :(得分:1)
一年后回答我自己的问题。我实际上问了错误的问题。数据透视表只是两个表之间的多对多关系。如果表示此多对多关系的表另外与其他表相关,则它不是数据透视表。所以在我的情况下,表food_user应该代表一个雄辩的实体,并且定义了三个关系。