Laravel "Undefined variable" 在 blade 文件中
Laravel "Undefined variable" in blade file
我在网上看到了很多与此类似的问题,并尝试了所有建议但没有任何效果,我不确定我错过了什么。
我只想在我的 home.blade.php 视图中显示我数据库中的所有产品,并尝试了许多不同的方法,但总是出现相同的错误。
所以这是我在 HomeController
中的功能:
public function index()
{
$produtos = Produtos::all();
return view('home', ['produtos' => $produtos]);
}
这是我的 web.php:
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.php:
Route::get('home', function () {
$produtos = DB::select('select * from produtos');
return view('home', ['produtos' => $produtos]);
});
但是同样的错误:
Undefined variable "$produtos
" appear.
谢谢!
像这样使用路由
在控制器顶部使用 use App\Produtos;
。
像这样写你的路由文件代码。
Route::get('/home', 'HomeController@index')->name('home');
像
这样写在你的控制器文件中
use App\Models\Produtos; // or use App\Produtos;
public function index()
{
$produtos = Produtos::get();
return view('home',compact('produtos'));
}
或
public function index()
{
$produtos = \DB::table('produtos')->get();
return view('home',compact('produtos'));
}
非常感谢您的帮助!问题其实很简单,我忽略了,我不小心使用了“return view('home');”在 2 条不同的路线中,这就是它无法识别变量的原因。
我通过排除另一个来修复它,只是在我的 web.php:
Route::get('/', function () {
$produtos = \DB::table('produtos')->get();
return view('home', compact('produtos'));
});
我在网上看到了很多与此类似的问题,并尝试了所有建议但没有任何效果,我不确定我错过了什么。 我只想在我的 home.blade.php 视图中显示我数据库中的所有产品,并尝试了许多不同的方法,但总是出现相同的错误。
所以这是我在 HomeController
中的功能:
public function index()
{
$produtos = Produtos::all();
return view('home', ['produtos' => $produtos]);
}
这是我的 web.php:
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.php:
Route::get('home', function () {
$produtos = DB::select('select * from produtos');
return view('home', ['produtos' => $produtos]);
});
但是同样的错误:
Undefined variable "
$produtos
" appear.
谢谢!
像这样使用路由
在控制器顶部使用 use App\Produtos;
。
像这样写你的路由文件代码。
Route::get('/home', 'HomeController@index')->name('home');
像
这样写在你的控制器文件中use App\Models\Produtos; // or use App\Produtos;
public function index()
{
$produtos = Produtos::get();
return view('home',compact('produtos'));
}
或
public function index()
{
$produtos = \DB::table('produtos')->get();
return view('home',compact('produtos'));
}
非常感谢您的帮助!问题其实很简单,我忽略了,我不小心使用了“return view('home');”在 2 条不同的路线中,这就是它无法识别变量的原因。
我通过排除另一个来修复它,只是在我的 web.php:
Route::get('/', function () {
$produtos = \DB::table('produtos')->get();
return view('home', compact('produtos'));
});