刀片文件中的拉拉维尔"Undefined variable"



我在网上看到了很多类似的问题,并尝试了所有的建议,但都没有奏效,我不确定我缺少了什么。我只想在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'));
});

最新更新