laravel - 未定义的变量laravel 7
问题描述
我不断得到
未定义变量:产品
产品.blade
@foreach ($products as $prod)
<td>{{ $prod->name }} </td>
<td>{{ $prod->buying_price }}</td>
<td>{{ $prod->selling_price }}</td>
<td>{{ $prod->weight}}</td>
@endforeach
产品控制器
public function index()
{
$products = products::all();
return view('products.products')->with('products', $products);
}
我也试过
public function index()
{
$products = products::all();
return view ('products.products',compact('products'));
}
路线
Route::resource('products', 'ProductsController');
解决方案
首先,您应该确保您没有输入任何错误。从您提供的代码中可以看出,只要您拥有products
模型,它就应该可以工作。
通常 Laravel 的工作方式是你有一个路由,在你的情况下,url.test/products
它绑定到ProductsController
. 您尚未在路线中提供该方法。也许就是这样。通常,该路线看起来类似于以下内容:
Route::get('/projects', 'ProjectController@index')->name('projects');
或者在 Laravel 8 中它看起来像这样:
Route::get('/projects/all', [App\Http\Controllers\ProjectController::class, 'index'])->name('projects');
那么控制器中的索引函数应该与此类似。在这种情况下,您上面的代码没有任何问题
$projects = Project::all();
return view('projects', compact('projects'));
你应该能够$projects
在你的视野内打电话。也试试看是否$projects
满了。只需dd($projects)
在您的控制器中执行此操作,以确保它返回某些内容。
我建议您重新检查整个过程,看看您是否犯了任何可能导致这种情况的拼写错误或错误,因为您上面的代码完全没问题,只是没有在路线中提供正确的功能。
编辑:
我现在可以看到,您拼写错误 [product]。当您调用 Product 模型时,它应该是 [Product]。
推荐阅读
- azure-marketplace - 我可以将基于 AKS 的解决方案部署到 Azure 市场吗?
- android - Expo Developer Tools 与 Expo CLI 断开连接
- java - Tomcat 服务不会在 Windows 任务计划中启动
- javascript - 如何在没有主键或排序键的情况下查询 dynamo db?
- c# - 检查是否选中了 dataGridView 复选框失败
- java - Java Swing JTabbedPane 布局
- hibernate - WildFly ClassNotFoundException Hibernate,在没有清单文件的情况下加载 WildFly 14 中的内置 Hibernate 库?
- matlab - 在 Matlab 中生成复杂的反对称矩阵
- android - Android 与房间表模型的双向数据绑定
- angular - 放置事件未在 Edge 上正确传递