情况:
我正在制作一个侧菜单,通过从表(MySQL)获取数据来填充该菜单。
每个 <li>
代表菜单的一项:
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
等等...
问题:
当我看到它的 Blade 时,一切正常,但是当我将它包含在主 Blade 中时,它会抛出变量 $all_items
,其中包含使 <li>
无法识别的数据 (Error: "variable not found error")
代码:
web.php
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::get('items', 'MenuCmpItemsController@show');
MenuCmpItemsController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\MenuCmpItems;
use DB;
class MenuCmpItemsController extends Controller
{
public function show(){
$all_items = DB::table('tbClassrooms')->select("room_number")->get();
return view('items', ['all_items'=>$all_items]);
}
}
items.blade.php(访问 URL '/items' 时工作正常)
@foreach ($all_items as $item)
<li>{{ $item->cmp_name }}</li>
@endforeach
现在我想在 auth.blade.php 中包含 items.blade.php,它包含以下侧面菜单结构:
<div class="collapse show" id="sidemenu">
<ul class="nav">
@include('items')
</ul>
</div>
但是它抛出
$all_items is undefined
我尝试过的:
我检查了是否可能是其他内容,例如,我用文本替换了“$all_items”,并且它在 auth.blade.php 中加载了文本,所以看来问题出在变量
$all_items
上我检查了是否
return view('items')->compact('all_items');
会有任何区别,但不会。
任何建议或想法都将受到高度赞赏。
最佳答案
你的文件夹结构是什么?在资源文件夹中
关于php - 拉拉维尔 8 : Undefined variable when loading a Blade into another Blade,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68110107/