php - 拉拉维尔 8 : Undefined variable when loading a Blade into another Blade

标签 php laravel laravel-blade laravel-8

情况: 我正在制作一个侧菜单,通过从表(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

我尝试过的:

  1. 我检查了是否可能是其他内容,例如,我用文本替换了“$all_items”,并且它在 auth.blade.php 中加载了文本,所以看来问题出在变量 $all_items

  2. 我检查了是否

return view('items')->compact('all_items');

会有任何区别,但不会。

任何建议或想法都将受到高度赞赏。

最佳答案

你的文件夹结构是什么?在资源文件夹中

关于php - 拉拉维尔 8 : Undefined variable when loading a Blade into another Blade,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68110107/

相关文章:

php - Guzzle 无法向本地主机(端口 : 80, 8000、8080 等)发出 GET 请求

php - 时间更改后的 time() 和 date() 问题(DST - 标准)

javascript - 出现错误 支持的方法 : GET, HEAD Laravel

mysql - 拉拉维尔 5 : Trouble with putting correct data on screen after combining tables

php - 如何在 zend 框架 2 中创建工厂?

php - 如何比较 int 和 timestamp 列(La​​ravel Eloquent )?

php - 我应该如何从用 PHP 编写的 RESTful api 提供二进制文件(图像/音频)?

php - Laravel Blade "old input or default variable"?

php - 如何在 View Blade Laravel 5.3 中显示空间?

php - 我如何定义 if 条件来检查 array_key 长度是否=13?