0
私の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アプリケーションで2番目のクエリを実行すると、私は結果の次のセットを取得:
category_id
category_title
category_slug
.......
をこれは基本的に、必要なすべての列にアクセスできないことを意味します。
は、だから私は行うことができるために必要なものを次のように私のサブカテゴリURIを構築することです:category_slug1
はメインカテゴリスラッグとcategory_slug
ある
category_slug1/category_slug
がサブディレクトリスラグです。問題は、私はメインカテゴリのスラッグだけを取得し、URIの私のサブカテゴリのためにスラッグを得ることができないということです。
私はlaravelに新しいですし、現時点では本当に多くを知らないと私はあなたがこの
こんにちはNaincy、次のエラーが表示されます: 'code' SQLSTATE [42S22]:列が見つかりません:1054不明な列 'on clause'内の 'subcategory.parent_category_id'(SQL: 'subcategory'。*、' parent'。* from ' 'サブカテゴリ'内部の 'categories'は' parent'の 'parent'として継承します.'category_id' =' subcategory'.parent_category_id 'subcategory'.category_display_type' =サイドバーと' subcategory'。 'category_visibility' = 1) – AlexB
@AlexB DBごとに変更することができます...あなたの質問から取ったものです...あなたのDBの正確なフィールド名を参照してください – Naincy
私はタイプミスを修正しましたが、私が得た結果は同じように私はメインカテゴリの結果しか得られません。実際に必要なのはcategory_slug/subcategory_slugを含むURIを構築できるようにカテゴリとサブカテゴリの両方にアクセスできることです。 category_slugとsubcategory_slugの両方が同じ列 'category_slug'であることを明確にするだけですが、依存関係はキックインして結果を分離する必要があります。 – AlexB