Laravel 6.15 是否与任何购物车包兼容?
Is Laravel 6.15 compatible with any shopping cart package?
我正在尝试为一个大学项目开发一个基于 Laravel 的电子商务,没什么特别的,它不会发布。
前提:我是一名学生和初学者,对于我的任何错误,我深表歉意。我正在使用 Laravel 6.15.
我制作了一个非常基本的HTML+CSS模板并为电子商务建立了一个自定义数据库,加载了一些记录只是为了测试目的:一切正常(显示产品,数据正确,无错误)。我必须建立一个购物车才能让最终用户购买东西,但尽管尝试了几个包裹,我还是无法将商品添加到我的购物车。
这是我尝试过的:
- 尝试使用 Crinsane's Laravel Shopping Cart,但意识到它只适用于 Laravel 5.6 或更早的版本;
- 已更新至 Hardevine's Shopping Cart,因为如果您有 Laravel 5.7+ 则推荐使用,但我无法将商品添加到购物车。
- 换了包,和Treestoneit's Shopping Cart一起去了(因为它说是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>
($product 被正确检索,没有问题,这里它被发送到上面的 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() 应该只打印购物车内容,但它是空的:'[]').
备注:
- redirect() 有效:单击产品页面中的按钮后,我被重定向到购物车页面,但是没有 success_message 并且购物车仍然是空的。
- 已尝试清除缓存
- 我试图将整个 $product 作为参数传递给 store()
函数并直接使用 Cart::add($product, 1),但没有
改进。
在这一点上,我不知道我正在进入什么,我试图了解我是否遗漏了什么或者是否存在实际问题。任何人都可以帮助或建议兼容的软件包吗?提前致谢。
我们是 Laravel 的 TreeStoneIT 购物车的创建者。
很难确定,因为没有完整的资源来重现这个问题,我的猜测是具有 Buyable
特征的模型可能没有正确设置,但也可能是其他东西.
您可以在此处查看完整的工作示例:https://github.com/treeStoneIT/laravel-commerce
我正在尝试为一个大学项目开发一个基于 Laravel 的电子商务,没什么特别的,它不会发布。
前提:我是一名学生和初学者,对于我的任何错误,我深表歉意。我正在使用 Laravel 6.15.
我制作了一个非常基本的HTML+CSS模板并为电子商务建立了一个自定义数据库,加载了一些记录只是为了测试目的:一切正常(显示产品,数据正确,无错误)。我必须建立一个购物车才能让最终用户购买东西,但尽管尝试了几个包裹,我还是无法将商品添加到我的购物车。
这是我尝试过的:
- 尝试使用 Crinsane's Laravel Shopping Cart,但意识到它只适用于 Laravel 5.6 或更早的版本;
- 已更新至 Hardevine's Shopping Cart,因为如果您有 Laravel 5.7+ 则推荐使用,但我无法将商品添加到购物车。
- 换了包,和Treestoneit's Shopping Cart一起去了(因为它说是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>
($product 被正确检索,没有问题,这里它被发送到上面的 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() 应该只打印购物车内容,但它是空的:'[]').
备注:
- redirect() 有效:单击产品页面中的按钮后,我被重定向到购物车页面,但是没有 success_message 并且购物车仍然是空的。
- 已尝试清除缓存
- 我试图将整个 $product 作为参数传递给 store() 函数并直接使用 Cart::add($product, 1),但没有 改进。
在这一点上,我不知道我正在进入什么,我试图了解我是否遗漏了什么或者是否存在实际问题。任何人都可以帮助或建议兼容的软件包吗?提前致谢。
我们是 Laravel 的 TreeStoneIT 购物车的创建者。
很难确定,因为没有完整的资源来重现这个问题,我的猜测是具有 Buyable
特征的模型可能没有正确设置,但也可能是其他东西.
您可以在此处查看完整的工作示例:https://github.com/treeStoneIT/laravel-commerce