【问题标题】:Laravel ErrorException & Undefined variable even though the variable is defined and has a valueLaravel ErrorException & Undefined variable 即使该变量已定义且具有值
【发布时间】:2017-02-17 07:19:05
【问题描述】:

即使我已使用 compact() 将变量通过控制器传递,我仍然收到未定义变量错误,我什至尝试像 return view('address/create', ['addresses' => $addresses]); 那样将变量传递给刀片视图

路线:

Route::get('/addresses/create', function () {
    return view('address/create');
})->middleware(\App\Http\Middleware\CheckSuperUser::class);

控制器功能:

public function create()
    {
        $addresses = Address::all();
        return view('address/create', compact('addresses'));
    }

查看代码(地址/创建):

<div class="col-md-4">
        <legend>Available Addresses</legend>
        @foreach($addresses as $address)
            {{ $address }}
        @endforeach
</div>

错误信息:

ErrorException in 656cf590f275580a61ff680434f2a7bc0399cbdb.php line 51:
Undefined variable: addresses (View: C:\Users\xxx\xxx\xxx\dorf\resources\views\address\create.blade.php)

我尝试清除缓存和视图,但这根本没有帮助。重新启动服务器和计算机,仍然是同样的错误。任何想法可能会发生什么?

【问题讨论】:

  • 你的“控制器”没有被调用。function () { ... } 是你的控制器。
  • 可以添加一些查看代码
  • @Komal 添加了查看代码。这只是一个简单的 foreach 循环。
  • 仔细检查您是否使用了正确的视图路径?

标签: laravel undefined blade


【解决方案1】:

@qasimalbaqali 你给错了路径你必须这样使用

Route::get('/addresses/create','ControllerName@create')->middleware(\App\Http\Middleware\CheckSuperUser::class);

ControllerName 替换为您的Controller

希望对你有帮助。

【讨论】:

    【解决方案2】:

    试着从这里通过

    return view('address/create')->with('addresses', $addresses);
    

    更新

    @foreach($addresses as $address)
       {{ $address->address }}
    @endforeach
    

    【讨论】:

    • 试试这样@foreach($addresses as $address) {{ $address->address }} @endforeach
    猜你喜欢
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2018-01-26
    • 2020-09-24
    • 1970-01-01
    • 2018-12-12
    相关资源
    最近更新 更多