Совместим ли Laravel 6.15 с какой-либо корзиной для покупок? - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь разработать основанную на Laravel электронную коммерцию для университетского проекта, ничего особенного, она не будет выпущена. Предпосылка: я студент и новичок, прошу прощения за любые мои ошибки. Я использую Laravel 6.15.

Я сделал очень простой шаблон c HTML + CSS и создал собственную базу данных для e-comm, загрузил несколько записей только для целей тестирования: все работает (продукты отображаются, данные верны, ошибок нет). Я должен создать корзину, чтобы позволить конечному пользователю покупать вещи, но, несмотря на попытки нескольких пакетов, я не могу добавить элементы в свою корзину.

Вот что я попробовал:

  • Пробовал работать с корзиной Crinsane Laravel , но понял, что она работает только с Laravel 5.6 или более ранними версиями;
  • Обновлено до Корзина Hardevine's , так как рекомендуется, если у вас есть Laravel 5.7+, но я не могу добавить товары в корзину.
  • Переключенный пакет, в комплекте с Корзина Treestoneit (так как он говорит, что для Laravel 6), та же проблема, корзина пуста после добавления какого-либо элемента.
  • Попытка добавления элемента статически (без запроса, без POST, просто вызывается Cart :: add () с фиксированными параметрами), без улучшений .

Мой код выглядит следующим образом (по состоянию на последнее обновление, поэтому здесь я использую корзину Treestoneit).

CartController. php

use Illuminate\Http\Request;
use App\Product;
use Treestoneit\ShoppingCart\Facades\Cart;
...
public function store(Request $request)
    {
    $product = Product::findOrFail($request->id);
    Cart::add($product, 1);
    return redirect()->route('cart.index')->with('success_message', 'Item added to cart successfully!');
}

product.blade. php

<form action="{{ route('cart.store', $product) }}" method="POST">
    {{ csrf_field() }}
    <button type="submit" class="btn btn-primary">Add to cart!</button>
</form>

($ товар правильный Извлечено, проблем с этим нет, здесь оно отправляется в указанную выше функцию store ()

cart.blade. php

...
{{ Cart::items() }}
...
@if (session()->has('success_message'))
    {{ session()->get('success_message') }}
@endif

@if (count($errors) > 0)
    @foreach ($errors->all() as $error)
       <p>{{ $error }}</p>
    @endforeach
@endif

(до перехода на последний пакет я использовал оператор @foreach для распечатки всего элемента корзины по элементам, но решил упростить его, чтобы избежать любой грамматической ошибки, здесь Cart :: items () должен просто распечатайте содержимое корзины, но оно пустое: '[]').

Примечания:

  • Перенаправление () работает: после нажатия кнопки на странице продукта , Я перенаправлен на страницу корзины, но там нет success_message и корзина все еще пуста.
  • Уже пробовал с очисткой кэша
  • Я пытался передать весь $ product в качестве аргумента в магазин () и работает напрямую с Cart :: add ($ product, 1), но без улучшений.

На данный момент я понятия не имею, что я получаю, и я пытаюсь чтобы понять, что я что-то упустил или есть проблема. Кто-нибудь может помочь или предложить совместимый пакет? Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...