私のDBは次のとおりです。
|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アプリケーションで2番目のクエリを実行すると、次の一連の結果が得られます。
category_id
category_title
category_slug
.......
これは基本的に、必要なすべての列にアクセスできないことを意味します。
したがって、私ができる必要があるのは、次の方法でサブカテゴリの URI を構築することです。
category_slug1/category_slug
ここでcategory_slug1
はメイン カテゴリのスラッグであり、category_slug
サブディレクトリのスラッグです。問題は、メイン カテゴリのスラッグしか取得できず、URI のサブカテゴリのスラッグを取得できないことです。
私はlaravelが初めてで、現時点ではあまりよく知らないので、何が間違っているのかわかりません。できれば助けてください