php - 路线 [/add-to-cart] 未定义。(查看:/projects/ProjectWebsite/resources/views/shop/index.blade.php)
问题描述
谁能帮助我,我已经创建了一个基本的购物车,但现在我尝试添加会话以便将产品添加到我的购物车,但是我收到了上面的错误。有谁知道我该如何解决这个问题,谢谢
这是我设置的路线(web.php)
Route::get('/add-to-cart/{id}', 'ProductController@getAddToCart');
这是在控制器页面(productController.php)
<?php
namespace App\Http\Controllers;
use App\Cart;
use App\Product;
use Illuminate\Http\Request;
use App\Http\Requests;
use Session;
class ProductController extends Controller
{
public function getIndex()
{
$products = Product::all();
return view('shop.index', ['products' => $products]);
}
public function getAddToCart(Request $request, $id) {
$product = Product::find($id);
$oldCart = Session::has('cart') ? Session::get('cart') : null;
$cart =new Cart($oldCart);
$cart->add($product, $product->id);
$request->session()->put('cart, $cart');
dd($request->session()->get('cart'));
return redirect()->route('shop.index');
}
}
这是我的购物车页面 (Cart.php)
<?php
namespace App;
class Cart
{
public $items = null;
public $totalQty = 0;
public $totalPrice = 0;
public function __construct($oldCart)
{
if ($oldCart) {
$this->items = $oldCart->items;
$this->totalQty= $oldCart->totalQty;
$this->totalPrice = $oldCart->totalPrice;
}
}
public function add($item, $id) {
$storedItem = ['qty' => 0,'price' => $item->price, 'item' => $item];
if ($this->items) {
if (array_key_exists($id, $this->items)) {
$storedItem = $this->items[$id];
}
}
$storedItem['qty']++;
$storedItem['price'] = $item->price * $storedItem['qty'];
$this->items[id] = $storedItem;
$this->totalQty++;
$this->totalPrice += $item->price;
}
}
这是我的索引页面(index.php,存储在商店文件夹中)
@section('title')
Checkouts Page
@endsection
@section('content')
@foreach($products->chunk(3) as $productChunk)
<div class="row">
@foreach($productChunk as $product)
<div class="col-sm-6 col-md-4">
<div class="thumbnail">
<img src="./images/image1.png" height="200" width="300">
<div class="caption">
<h3>{{ $product->title }}</h3>
<p class="description"> {{ $product->description }} </p>
<div class="clearfix">
<div class="pull-left price">£{{ $product->price }}</div>
<a href="{{ route('/add-to-cart', ['id' => $product->id]) }}" class="btn btn-success pull-right" role="button">Add to Basket</a>
</div>
</div>
</div>
</div>
@endforeach
</div>
@endforeach
@endsection
解决方案
推荐阅读
- node.js - 如何在 node.js 中为单个请求返回 2 个响应
- python-3.x - 我希望能够在用户输入错误后重新启动我的程序
- vue.js - 如何渲染基于 VueJs 组件的子节点文本?
- cloud - 可扩展的虚拟主机解决方案
- angular - Firestore/ionic 错误 - 调用 .map 时方法 snapshotChanges 返回未定义
- user-interface - javafx 按钮从 txt 读取行到文本字段
- ansible - 执行 MFA 政策后无法担任角色
- javascript - 如何将数组 json 插入到其他 const 的索引中?
- java - 从资源文件加载目录并将文件加载到列表中
- swift - 在 Swift 5.0 中从 AppDelegate 实例化窗口失败