Laravel可以使用连接表来获取数据吗?

时间:2017-12-04 13:31:02

标签: php laravel laravel-5 eloquent

只是一些随意的想法,可以使用连接表而不是使用雄辩的关系。因为我在这里读到的大多数答案建议使用像belongsstoMany,belongssto和其他雄辩关系这样的关系。如果可以的话,如果你们给我一些关于如何做到这一点的示例代码应该会很好。抱歉这个愚蠢的问题。谢谢

3 个答案:

答案 0 :(得分:2)

使用我之前创建的一些基本示例,使用联接,这是一个论坛帖子表和一个论坛回复表。见下文:

$forum = Forum::where('forumType', '=', $topic->forumType)
    ->leftJoin('forum_replies','forum_topics.forumid','=','forum_replies.topic_id')
    ->groupBy('forum_topics.forumid')
    ->orderBy('forum_replies.updated_at', 'DESC')
    ->get();

以上示例将forumid从forum_topics表连接到forum_replies表' s topic_id

虽然不是一种非常整洁的方式,但你应该通过使用关系来解决这个问题。

上面的代码前段时间转换为关系而不是使用连接。

答案 1 :(得分:0)

是的,如果你不想添加这样的关系,你可以按照你的要求使用加入

user::select('in_user_id', 'st_first_name', 'st_last_name', 
'in_contact_no', 'email', 'tbl_city.st_city_name', 
'tbl_usertype_master.st_usertype_name', 'tbl_center.st_center_name', 
'is_active')->leftjoin('tbl_city', 'tbl_city.in_city_id', 
'tbl_user.in_city_id')-> 
leftjoin('tbl_usertype_master','tbl_usertype_master.in_usertype_id', 
'tbl_user.in_usertype_id')->leftjoin('tbl_center', 
'tbl_center.in_center_id', 'tbl_user.in_center_id');

以这种方式你可以在这里使用laravel中的join来用于来自User table的显示用户

希望这有助于你

谢谢

答案 2 :(得分:0)

Laravel查询构建器支持几乎所有SQL语句,您可以在此处查看所有可用方法https://laravel.com/docs/5.5/queries