Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 02.01.2018 18:16:12

Записываются разные хеши в БД и в куки

Пишу корзину для магазина
При добавлении товара в корзину, проверяю есть ли у пользователя кука "cart_hash", если ее нету, то устанавливаю пользователю куку и заношу запись в БД

 public function createRow()
    {
    	$hash = $this->generateHash();
dump($hash);
        $this->hash = $hash;
        if (Auth::check()) {
            $this->user_id = Auth::user()->id;
        }
        $this->save();
		Cookie::queue(Cookie::forever('cart_hash', $hash));
dump($hash);
        return $this;
    }

    public function generateHash()
    {
        return sha1(microtime() . Str::random());
    }

В обеих дампах хеш одинаковый, но в БД записывается "0304d9d1b4389ea75c11a6466d793ef88ea8e56f", а в куки "eyJpdiI6IjM0NGErU2FnaGluYnI3WHlwRXhwcHc9PSIsInZhbHVlIjoiYUtrN016Y3JFb1BNdlhpR3RuMUt3VGlXS3NaXC9CRDROakNaaUFidXVCS0RnczdYMDhWZ2pvVG4yWk5XRjlKYzBDZUd6S3R1TjRrZ1FPZmpLOW51MUdnPT0iLCJtYWMiOiI5MTQ2ZjkzNGViMjJiOWUwYjYwYWE1ZTU1MGFhYzEwYTU1NzhlNGExNzQ4M2NiZGI1ZGI2YWNmZDlmM2ZjYzZhIn0"
Из-за чего это может происходить, и как мне дальше эти хеши сравнивать?

Не в сети

#2 02.01.2018 18:27:37

Re: Записываются разные хеши в БД и в куки

Если делаю дамп а аякс обработчике "Cookie::get('cart_hash')", то хеши совпадают, если в другом контролере, то дампится тот большой хеш

Не в сети

#3 02.01.2018 19:04:00

Re: Записываются разные хеши в БД и в куки

Из доков:

Все cookie, создаваемые Laravel, шифруются и подписываются специальным кодом

Не в сети

#4 02.01.2018 20:33:38

Re: Записываются разные хеши в БД и в куки

Смысл записывать cookie? Она используется кодом на JS? Если нет, то разумнее записывать флаг в сессию (Session).

Не в сети

#5 02.01.2018 20:57:06

Re: Записываются разные хеши в БД и в куки

Из доков:Все cookie, создаваемые Laravel, шифруются и подписываются специальным кодом

А каким образом декодировать или сравнить со значением в бд?

Не в сети

#6 03.01.2018 13:31:10

Re: Записываются разные хеши в БД и в куки

А каким образом декодировать или сравнить со значением в бд?

Автоматически деокдируются. Из тех же доков:

Для получения значения cookie из запроса используйте метод cookie() на экземпляре Illuminate\Http\Request:

$value = $request->cookie('name');

Не в сети

Подвал раздела