我遇到一个问题,我需要存储在数据库中的产品列表才能显示在我的
start.blade.php
页面上,但显示错误:
未定义变量$products
这是我的全部代码:
start.blade.php:
@extends('layouts.app')
@section('content')
<section class="product-section">
<div class="product-list">
<h1>Product List</h1>
@forelse ($products as $product)
<div class="product">
<p>{{ $product->name }}</p>
<p>{{ $product->weight }}</p>
<p>{{ $product->type }}</p>
<p>{{ $product->price }}</p>
<p>{{ $product->supplier }}</p>
<p>{{ $product->extra }}</p>
<p>{{ $product->amount }}</p>
</div>
@empty
<p>No products found.</p>
@endforelse
</div>
</section>
@endsection
web.php:
use App\Http\Controllers\ProductController;
Route::get('/start', [ProductController::class, 'index'])->name('logged.start');
ProductController.php:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Product;
class ProductController extends Controller
{
public function index()
{
$products = Product::all();
// Pass the products to the 'logged.start' view
return view('logged.start', compact('products'));
}
}
产品.php:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
use HasFactory;
protected $fillable = ['name', 'weight', 'type', 'price', 'supplier', 'extra', 'amount'];
}
有人可以帮忙看看我和机器人都找不到的修复吗?
我已经尝试了所有方法,从检查路线是否正确到制作新控制器,但没有任何方法可以使该列表出现在数据库中!
在您的控制器中,您将视图返回为logging.start,但您的start.blade.php文件可能位于resources/views文件夹中。
return view('start', compact('products'));