Ahoj. Potreboval by som vybrať cookies ktoré som uložil ale nenôžem sa k nim dostať. Stále mi vracia Cookie::get null.
Skúšal som všetko možné ukladal som aj cez setcookie ale nejde mi to potom vybrať. Ako pracujete s cookies vy?
To možeš ľahko zmeniť. Registrácia je zdarma a ako registrovaný člen získaš množstvo výhod. Prečítaj si prečo by si mal byť členom.
Prihlásiť sa ZaregistrovaťA ako pracujes s cookie Ty?
Tipujem, ze cookie len vyrobis, ale neodosles ju v ramci odpovede. Dolezite je uvedomit si zakladnu vec - cookie sa ukladaju v prehlidaci navstevnika/uzivatela. V runtime nemozes ulozit cookie do prehliadaca navstevnika. Cookie potrebujes vyrobit A nasledne poslat s HTTP odpovedou. Jedine to je cesta ako susienku zapisat.
Samotna metoda Cookies::make()
sa postara o vytvorenie cookie, ale tu este musis odoslat. Na to mozes pouzit bud
return response('Hello World')->cookie($cookie);
alebo cookie vyrobis a odlozis na odoslanie s najblizsou odpovedou
Cookie::queue('name', 'value', $minutes);
Metoda Cookie::queue()
prijma v argumente aj instanciu cookie vytvorenu Cookie::make()
Cookie::queue(Cookie::make('name', 'value', $minutes));
K takto vytvorenym cookies potom pristupujes v ramci aktualneho requestu ako $request->cookie('name')
, alebo pouzijes fasadu Cookie tak ako to pravdepodobne robis teraz, pomocou Cookie::get('my_cookie')
.
Tiez si treba uvedomit, ze ak posles cookie v odpovedi, tak dostupna v requeste bude az v najblizsom HTTP cykle, teda v dalsej poziadavke, ktora ti pride.
Snad to pomoze.
Kdykoli chci použít cookies tak se nad tím znovu zamyslím... a nakonec použiji session (dočasné nastavení pro aktuální sezení) nebo databázi (trvalé nastavení pro všechna uživatelova sezení). Session využívá jedinou autentizační cookie (víc cookies zvětšuje HTTP hlavičky pro každou HTTP odpověď), o kterou se Laravel postará sám. Takto uložená data jsou k dispozici i v aktuálním požadavku kdy byla session vytvořena, programátor není omezován na použití jen před odesláním těla odpovědi...
https://laravel.com/docs/6.x/session
// Retrieve a piece of data from the session...
$value = session('key');
// Specifying a default value...
$value = session('key', 'default');
// Store a piece of data in the session...
session(['key' => 'value']);