Я пытаюсь разработать основанную на 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), но без улучшений.
На данный момент я понятия не имею, что я получаю, и я пытаюсь чтобы понять, что я что-то упустил или есть проблема. Кто-нибудь может помочь или предложить совместимый пакет? Заранее спасибо.