Mein DB ist:Laravel DB-Abfrage eine Reihe von Ergebnissen unterscheidet sich von direkten MySQL-Abfrage gibt
|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 |
Ich versuche, die folgende Abfrage in 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
wie so auszuführen:
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);
}
das Problem ist, dass ich andere Reihe von Ergebnissen bekomme.
Als ich die erste Abfrage direkt in MySQL verwenden, erhalte ich folgend:
category_id
category_id1
category_title
category_title1
category_slug
category_slug1
.......
, wenn ich die zweite Abfrage in meiner Laravel Anwendung ausführen bekomme ich folgenden Satz von Ergebnissen:
category_id
category_title
category_slug
.......
Das bedeutet im Grunde, dass ich nicht auf alle notwendigen Spalten zugreifen kann.
Also, was ich muß in der Lage sein zu tun ist, URI für meine Unterkategorien in der folgenden Art und Weise zu bauen:
category_slug1/category_slug
wo category_slug1
Hauptkategorie Slug ist und category_slug
Unterverzeichnis Slug ist. Das Problem ist, dass ich nur die Hauptkategorie Slug und nicht Slug für meine Unterkategorie in URI bekommen kann.
Ich bin nicht sicher, was ich falsch mache, wie ich bin neu in Laravel und im Moment nicht wirklich wissen viel, so helfen Sie mir bitte, wenn Sie können
Hallo Naincy, ich bekomme den folgenden Fehler: 'code'SQLSTATE [42S22]: Spalte nicht gefunden: 1054 Unbekannte Spalte' subcategory.parent_category_id 'in' on clause '(SQL: wähle 'subcategory'. *,' Parent'. * From ' Kategorien "als" Unterkategorie "innerer Join" Kategorien "als" Elternteil "auf" Elternteil ".' category_id' = 'Unterkategorie'.'parent_category_id' where 'Unterkategorie'.''Category_Display_Type' = Seitenleiste und' Unterkategorie'.'Category_Visibility' = 1) – AlexB
@AlexB Sie können es nach Ihrer DB ändern ... das ist etwas, das ich nur von Ihrer Frage genommen habe ... bitte sehen Sie den genauen Feldnamen aus Ihrem DB – Naincy
Ich habe den Tippfehler korrigiert, aber die Ergebnisse, die ich bekomme, sind die Das selbe, damit ich nur die Ergebnisse für die Hauptkategorien erhalte und was ich wirklich brauche, ist der Zugriff auf beide Kategorien und Unterkategorien, um den URI erstellen zu können, der category_slug/subcategory_slug enthalten wird. Um sowohl category_slug als auch subcategory_slug zu verdeutlichen, gibt es dieselbe Spalte 'category_slug', aber die Abhängigkeit sollte eingreifen und die Ergebnisse trennen. – AlexB