首页 > 解决方案 > 为什么我会收到此错误:未定义的变量:产品(查看:C:\xampp\htdocs\basic\resources\views\mycart.blade.php)?

问题描述

我是 Laravel 的新手,在构建项目时我遇到了错误:

未定义变量:产品(查看:C:\xampp\htdocs\basic\resources\views\mycart.blade.php)

检查错误以修复后仍然存在,我希望你们能帮助我。提前致谢

mycart刀片代码:

@extends('layouts.app')

@section('content')
@if(Session::has('cart'))
<div class="container">
    <b class="text-uppercase" style="color: darkgrey; font-size: 18px;">Item(s)</b>
<div class="row">
            @foreach($products as $products)
                <div class="col-sm-12 col-lg-2" style="padding-bottom: 12%;">
                    
                        <div class="cart-item-container">
                            <a href="ads/{{strtolower(str_replace(" ","-",$product->name))}}"><div class="item-image"><img src="{{asset($product->image)}}" class="item-image">
                            </div>
                            <div class="item-tag" >
                                <p class="h5 text-capitalize">{{$product->name}}</p></a>
                                <p class="h4">GH¢ {{$product->price}}</p>
                                <div class="form-group" style="float: left; width: 25%;">
                                <select class="form-control" id="exampleFormControlSelect1">
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
      <option>6</option>
      <option>7</option>
      <option>8</option>
      <option>9</option>
      <option>10</option>
    </select>
  </div>
    <div style="float: right;"><ul class="list-inline">
                                <li><a href="#" title="Save item for future use"><p class="text-primary text-capitalize"><span class="glyphicon glyphicon-heart-empty"></span></span></a></li>
                                <li><a href="#" title="Remove item from cart"><p class="text-muted text-capitalize"><span class="glyphicon glyphicon-trash"></span></p></a></li>
                            </ul>
                        </div>
                            </div>  
                        </div>  
                </div>
            @endforeach
</div>
    <div style="float: right;"><ul class="list-inline">
                                <li><a href="#" title="Save item for future use"><p class="text-primary text-capitalize"><span class="glyphicon glyphicon-heart-empty"></span></span></a></li>
                                <li><a href="#" title="Remove item from cart"><p class="text-muted text-capitalize"><span class="glyphicon glyphicon-trash"></span></p></a></li>
                            </ul>
                        </div>
                            </div>  
                        </div>  
                </div>
</div>
@else

@endif

<div style="float: right; clear: both;">
        <table class="table">
    <tr>
      <th scope="row">Total</th>
      <td>GH¢ {{ $totalPrice }}</td>
    </tr>
</table>
<ul class="list-inline">
    <li><button class="btn btn-plain text-uppercase">contine shopping</button></li>
    <li><button class="btn btn-primary text-uppercase">proceed to checkout</button></li>
    </ul>
    </div>
</div>
</div>
<hr style="border: 1px solid rgb(215,215,215); width: 85%;">
    <div class="container" style="margin-top: 5%;">
        <b class="text-uppercase" style="color: darkgrey; font-size: 18px;">saved item(s)</b>
        <div class="row">
            
</div>
</div>
@endsection

和 ProductController 控制器代码:

<?php

namespace App\Http\Controllers;

use App\Item;
use Illuminate\Http\Request;

use App\Cart;
use App\Http\Requests;
use Session;

class ProductController extends Controller
{
    public function addToCart(Request $request, $id)
    {
        $product = Item::find($id);
        $oldCart = Session::has('cart') ? Session::get('cart') : null;
        $cart = new Cart($oldCart);
        $cart->add($product, $product->id);
        
        $request->session()->put('cart', $cart);
        return redirect()->route('welcome.index');
    }

    public function getCart()
    {
        if (!Session::has('cart')) {
            return view('mycart');
        }
    $oldCart = Session::get('cart');
    $cart = new Cart($oldCart);
    return view('mycart', ['products' => $cart->items, 'totalPrice' => $cart->totalPrice]);
}
}

标签: phpsqllaravel

解决方案


<?php
  
namespace App\Http\Controllers;
  
use App\Product;
use Illuminate\Http\Request;
  
class ProductController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $products = Product::latest()->paginate(5);
  
        return view('products.index',compact('products'))
            ->with('i', (request()->input('page', 1) - 1) * 5);
    }
   
    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('products.create');
    }
  
    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $request->validate([
            'name' => 'required',
            'detail' => 'required',
        ]);
  
        Product::create($request->all());
   
        return redirect()->route('products.index')
                        ->with('success','Product created successfully.');
    }
   
    /**
     * Display the specified resource.
     *
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function show(Product $product)
    {
        return view('products.show',compact('products'));
    }
   
    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function edit(Product $product)
    {
        return view('products.edit',compact('product'));
    }
  
    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Product $product)
    {
        $request->validate([
            'name' => 'required',
            'detail' => 'required',
        ]);
  
        $product->update($request->all());
  
        return redirect()->route('products.index')
                        ->with('success','Product updated successfully');
    }
  
    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function destroy(Product $product)
    {
        $product->delete();
  
        return redirect()->route('products.index')
                        ->with('success','Product deleted successfully');
    }

推荐阅读