如何使用laravel在数据透视表上进行其他内部联系
技术问答
278 人阅读
|
0 人回复
|
2023-09-14
|
我有四个表:! L8 Q& F) N, t' J; K+ ~
foods: id,name. z2 F- y* L8 E! K% i
users: id,name& h# Y0 b& U) @# z! l. l. g( \
mealtypes: id,name/ H3 N) s, H L- G6 @
food_user: id,food_id,user_id,mealtype_id食物和用户之间有多对多的关系food_user一对一关系) L$ v V) o9 @$ S4 b9 F
最后,我希望有一个具有以下属性的模型实例:food.name,users.name,meattype.name" b( ~( M2 P8 z* J: q/ d
正常的SQL将是:
6 _9 o- c- O7 bSELECT f.name,u.name,m.name FROM foods fINNER JOIN food_user fu ON f.id = fu.food_idINNER JOIN users u ON fu.id = u.id INNER JOIN mealtypes m ON fu.mealtype_id = m.id谢谢你的帮助!$ e) g- e, }2 x4 k4 b1 v0 [2 E
! e3 w. Z# S5 j; a( V! b2 [5 ` 解决方案: 4 V1 r0 b4 N1 e z. N; E
假设你有一个名字Food可以使用的模型Eloquent和Query Builder类似操作:
$ ^. U0 N. I8 e+ [5 n$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 :
" W5 B& d# n# A5 |//www.laravel.com/docs/queries |
|
|
|
|
|