【发布时间】:2020-01-14 07:07:15
【问题描述】:
我有四张桌子
- 链接(id、user_id、link_data、category_id、submit_date)
- 用户(ID、用户名、密码、状态)
- 类别(id、name、slug)
- 标签(id、link_id、标签)
我想使用用户名、类别名称和标签和标签显示所有链接详细信息,但加入它会将 links.id 替换为 category.id。
$catid = Category::where('slug', '=', $slug)->firstOrFail()->id;
$linksbycategories = DB::table('links')
->where('category_id', '=',$catid)
->join('users', 'users.id', '=', 'links.user_id')
->join('categories', 'categories.id', '=', 'links.category_id')
->join('tags', 'tags.link_id', '=', 'links.id')->get();
return $linksbycategories;
//return view('category', ['linksbycategories' => $linksbycategories]);
我有 3 个链接 id 1 的标签,我得到的结果是第一个链接信息的 3 倍数据,链接 id 为 7,这是该链接的类别 id。我该如何解决这个问题。
【问题讨论】:
-
您是否尝试在其中添加 ->select() 以准确指定您想从查询中收集的内容..
-
是的@Petay87 我做了但是它不会显示任何连接数据,我只得到链接表数据。
-
如果不使用 DB::table 而是使用模型 so links::where 会怎样
-
links::where 结果相同。
标签: laravel laravel-5 join model-view-controller