Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Laravel - vyhledávání záznamů v DB podle ID

Aktivity
Avatar
Martin Suchodol:10.6.2020 16:19

Ahoj, snad mi někdo poradí.

Na základě parametru v url adrese vyhledávám ID záznamu v databázi. Na základě tohoto ID se pak vyhledají další záznamy tedy potomci daného záznam

Používám tyto kódy

routa:

Route::get('articles/{param?}', 'ArticleController@articles')->name('articles');

Pro zjištěním paramtru z url:

$param = request()->route()->parameters('param');

Pro zjištění ID dané kategorie

DB::table('menus')
    ->select('parent_id)
    ->where('url', '=', $param['param'])
    ->first();

Až sem mi to funguje jak má a na základě adresy ve formátu articles/clanky. Se mi vrátí ID daného záznamu. Další dotaz by mi měl vrátit všechny ostatní záznamy které na daný záznam odkazují jsou tedy jeho potomci.

DB::table('menus')
            ->join('article_categories', 'article_categories.id', '=', 'menus.parent_id')
            ->where('parent_id', '=', $url->parent_id)
            ->get();

A zde nastupuje problém který vrátí asolutně prázdný výsledek. Což jsem ověřil i pomocí dd.
Jakmile ale místo $url->parent_id dosadím číslo daně kategorie tak se vše vypíše jak má. Došel jsem tedy k závěru že poslední dotaz nědokáže zpracovat výstup přechozího dotazu a tak se vrátí null, respektive se nevrátí absolutně nic.

Screeny:
první zobrazuje nulový výpis, tedy dotaz neproběhl tak jak by měl
Druhý zobrazuje výpis po ručním vložení ID rodiče

Editováno 10.6.2020 16:20
 
Odpovědět
10.6.2020 16:19
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.