php - 为什么我会收到此错误:未定义的变量:产品(查看: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]);
}
}
解决方案
<?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');
}
推荐阅读
- python-3.x - 我有 var name 和 var value 的输出组合,如 0= 、 1= 、 10= 等以随机顺序排列,我需要将其排序为 0= ,1= 、 2= 、 3= 等
- android - 如何在 Android 中使用 Retrofit 将复杂数据作为 MultiPart 发布?
- reactjs - 我可以在不违反 React Hooks 规则的情况下解构 React 上下文以在 useEffect 中使用吗?
- batch-file - 将文件从源复制到目标的批处理命令
- html - Angular 性能:DOM 事件导致不必要的函数调用
- excel - Excel过滤多个值
- python - 通过从熊猫中的不同数据框中附加列来创建列
- reactjs - 通过上下文将值从一个组件简单传递到另一个组件
- node.js - 如何阻止用户从同一帐户但不同的选项卡登录两次
- robotframework - 从 Robot Framework 调用远程测试库构造函数作为关键字