回答

收藏

如何使用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
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则