Уникальный ввод данных в сеанс Laravel

Чтобы создать корзину, я хотел бы добавить один и тот же продукт только один раз в свою сессию Laravel. Я попробовал это условие в своем контроллере, но оно все еще не работает. Есть идеи?

Контроллер

$sessions = Session::get('items.item');
foreach ($sessions as $session) {
    if ($request->name == $session['name']) {
        return;
    } else {
        Session::push('items.item', [
            'name' => $request->name,
        ]);
    }
}

Уникальный ввод данных в сеанс Laravel

Как выглядит dd($sessions)?

senty 26.03.2019 15:49

Спасибо за ваш интерес, я обновил пост для вас

yassine j 26.03.2019 15:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
210
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш код немедленно добавит элемент, если первый найденный элемент не имеет того же имени. Вы должны проверить все элементы, прежде чем добавлять новый.

$sessions = Session::get('items.item');
    
$inItems = false;
foreach ($sessions as $session) {
    if ($request->name == $session['name']) {
        $inItems = true;
        break;
    }
}
    
if (!$inItems) {
    Session::push('items.item',[
        'name' =>  $request->name,
    ]);
}

Другие вопросы по теме