Laravel DB查询提供了一组直接MySQL查询不同的结果的
问题描述:
我的DB是:Laravel DB查询提供了一组直接MySQL查询不同的结果的
|category_id|category_slug |category_name |parent_category_id|
|1 |Main Category1|Main Category1|0 |
|2 |Main Category2|Main Category2|0 |
|3 |Sub Category1 |Sub Category1 |1 |
|4 |Sub Category2 |Sub Category2 |1 |
|5 |Sub Category3 |Sub Category3 |2 |
我想在MySQL
执行以下查询SELECT *
FROM categories AS subcategory
JOIN categories AS parent ON parent.category_id = subcategory.parent_category_id
WHERE subcategory.category_display_type = 'sidebar'
AND subcategory.category_visibility = 1
像这样:
class SidebarnavComposer
{
public function compose(View $view)
{
$params = DB::table('categories as subs')->join('categories as cats', function($join){
$join->on('subs.parent_category_id', '=', 'cats.category_id')
->where('subs.category_display_type', '=', 'sidebar')
->where('subs.category_visibility', '=', 1);
})->get();
$view->with('subcategories', $params);
}
问题是我得到了不同的结果集。
当我在MySQL直接使用第一查询我得到如下:
category_id
category_id1
category_title
category_title1
category_slug
category_slug1
.......
当我在laravel申请执行第二查询,我得到以下的结果集:
category_id
category_title
category_slug
.......
这基本上意味着我无法访问所有必要的列。
所以我需要能够做的是在下面的方法来构建URI为我的子类别:
category_slug1/category_slug
其中category_slug1
是主要类别蛞蝓和category_slug
是子目录蛞蝓。问题是我只能得到主要的类别slug,并且不能在我的子类别中使用slug。
我不知道我在做什么错了,因为我是新来laravel和此刻真的不知道多少,所以请帮助我,如果你能
答
使用此:
$data = DB::table('categories AS subcategory')
->join('categories AS parent', 'parent.category_id', '=', 'subcategory.parent_category_id')
->where('subcategory.category_display_type', '=', 'sidebar')
->where('subcategory.category_visibility', '=', 1)
->select('subcategory.category_slug AS category_slug1', 'parent.category_slug AS category_slug')
->get();
喜Naincy,我得到以下错误:'code'SQLSTATE [42S22]:未找到列:1054未知列'on子句'中的子列'subcategory.parent_category_id'(SQL:选择子类别。*,类别''作为'子类别'内部连接'类别'作为父类别''父类别'.'category_id' ='子类别'.'parent_category_id'其中'子类别'.'category_display_type' =侧边栏和'子类别'.'category_visibility' = 1) – AlexB
@AlexB您可以根据您的数据库更改它......这是我仅从您的问题中提取的内容...请从您的数据库中查看确切的字段名称 – Naincy
我修正了错字,但是我得到的结果是相同,所以我只得到主要类别的结果,我实际需要的是有权访问这两个类别和子类别,以便能够构建包含category_slug/subcategory_slug的URI。只是为了澄清category_slug和subcategory_slug是同一列'category_slug',但依赖应该踢入并分离结果。 – AlexB