我在网上看到了很多类似的问题,并尝试了所有的建议,但都没有奏效,我不确定我缺少了什么。我只想在home.blade.php视图中显示数据库中的所有产品,并尝试了许多不同的方法,但总是出现相同的错误。
这就是我在HomeController
:中的函数
public function index()
{
$produtos = Produtos::all();
return view('home', ['produtos' => $produtos]);
}
这是我的web.hp:
Route::get('home', [HomeController::class, 'index'])->name('home');
最后是home.blade.php视图中我试图使用但未被识别的部分:
@foreach($produtos as $produto)
<div class="col-md-4 mb-3">
<div class="card">
<img class="img-fluid" alt="100%x280" src="">
<div class="card-body">
<h4 class="card-title">{{$produto->nome}}</h4>
<p class="card-text">{{$produto->categoria}}</p>
</div>
</div>
</div>
@endforeach
我也试过这样做:家庭控制器:
public function index()
{
return view('home');
}
web.hp:
Route::get('home', function () {
$produtos = DB::select('select * from produtos');
return view('home', ['produtos' => $produtos]);
});
但同样的错误:
未定义变量"CCD_ 2";显得
谢谢!
使用类似的路线
在控制器顶部使用use AppProdutos;
。
像这样编写路线文件代码
Route::get('/home', 'HomeController@index')->name('home');
写入控制器文件,如
use AppModelsProdutos; // or use AppProdutos;
public function index()
{
$produtos = Produtos::get();
return view('home',compact('produtos'));
}
或
public function index()
{
$produtos = DB::table('produtos')->get();
return view('home',compact('produtos'));
}
非常感谢您的帮助!这个问题实际上是一个非常简单的问题,我不小心使用了";返回视图('home'("在两种不同的途径中,这就是它没有识别变量的原因。
我通过排除另一个来修复它,并在我的web.hp:上有这样的内容
Route::get('/', function () {
$produtos = DB::table('produtos')->get();
return view('home', compact('produtos'));
});