【发布时间】:2020-08-11 10:43:22
【问题描述】:
我是 Laravel 的新手,这是我的第一个项目。我正在开发一个电子商务网站。到目前为止,我已经在 StackOverflow 和 laracasts 的帮助下完成了这个项目。为什么我会收到此错误?
我得到一个错误, ErrorException 未定义变量:产品
这是我的控制器。
CartController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Product;
use App\Category;
class CartController extends Controller
{
public function index()
{
$products = Product::get();
return view ('cart')->with(compact('products'));
}
public function create()
{
//
}
public function store(Request $request)
{
//
}
public function show($id)
{
$products = Product::find($id);
return view('cart')->with(compact('product'));
}
public function edit($id)
{
//
}
public function update(Request $request, $id)
{
//
}
public function destroy($id)
{
//
}
}
这是我的刀片文件。
cart.blade.php
@extends('layouts.single')
@section('content')
@foreach($products as $p)
<tr class="">
<td class="text-center">
<a href="#" class="text-gray-32 font-size-26">×</a>
</td>
<td class="d-none d-md-table-cell">
<a href="#"><img class="img-fluid max-width-100 p-1 border border-color-1" alt="Image Description"></a>
</td>
<td data-title="Product">
<a href="#" class="text-gray-90">{{ $p ['prod_name'] }}</a>
</td>
<td data-title="Price">
<span class="">LKR {{ $p ['prod_price'] }}.00</span>
</td>
<td data-title="Quantity">
<span class="sr-only">Quantity</span>
<!-- Quantity -->
<div class="border rounded-pill py-1 width-122 w-xl-80 px-3 border-color-1">
<div class="js-quantity row align-items-center">
<div class="col">
<input class="js-result form-control h-auto border-0 rounded p-0 shadow-none" type="text" value="1">
</div>
<div class="col-auto pr-1">
<a class="js-minus btn btn-icon btn-xs btn-outline-secondary rounded-circle border-0" href="javascript:;">
<small class="fas fa-minus btn-icon__inner"></small>
</a>
<a class="js-plus btn btn-icon btn-xs btn-outline-secondary rounded-circle border-0" href="javascript:;">
<small class="fas fa-plus btn-icon__inner"></small>
</a>
</div>
</div>
</div>
<!-- End Quantity -->
</td>
<td data-title="Total">
<span class="">$1,100.00</span>
</td>
</tr>
@endforeach
@endsection
这是我的路线。
web.php
Route::get('/cart', 'CartController@index')->name('cart');
Route::get('/cart/{id}', 'CartController@show')->name('cart');
产品表
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateProductsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('prod_name');
$table->string('prod_brand')->nullable();
$table->unsignedBigInteger('cat_id');
$table->string('prod_description')->nullable();
$table->string('prod_item_code')->nullable();
$table->string('prod_modal')->nullable();
$table->string('prod_size')->nullable();
$table->string('prod_weight')->nullable();
$table->string('prod_height')->nullable();
$table->string('prod_manufacturer')->nullable();
$table->float('prod_price')->nullable();
$table->float('prod_discount')->nullable();
$table->float('prod_quantity')->nullable();
$table->string('prod_image_path')->nullable();
$table->timestamps();
$table->foreign('cat_id')
->references('id')
->on('categories')
->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('products');
}
}
产品型号
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Storage;
class Product extends Model
{
}
【问题讨论】:
-
index()控制器的方法已将$products分配给数组但从未定义,我想您需要从模型中获取您的产品,然后将记录分配给$products -
意思是,我需要添加一个foreach函数吗?
-
这意味着你需要像
$products = Product::limit(10)->get();这样的东西才能将它分配给数组
标签: php laravel model-view-controller woocommerce e-commerce