未定义变量:文件(查看:\resources\views\home.blade.php)

Posted

技术标签:

【中文标题】未定义变量:文件(查看:\\resources\\views\\home.blade.php)【英文标题】:Undefined variable: files (View: \resources\views\home.blade.php)未定义变量:文件(查看:\resources\views\home.blade.php) 【发布时间】:2019-11-07 14:45:50 【问题描述】:

我正在尝试从下拉列表中的文件表中获取一些数据(所有文件名),但它给出了错误:未定义的变量:文件

控制器:

public function show($id)

   $data = File::findOrFail($id);
   $files = \DB::table('files')->get();

   return view('userhome', compact('data', 'files'));

刀片模板:

<div class="form-group">
    <label class="text-left">Select Record</label>
    <select name="parent_id">
          <option value="">Select Record</option>
          @foreach ($files as $filename)
              <option value=" $filename->id "> $files->filename </option>
          @endforeach
    </select>
</div>

web.php:https://ibb.co/xMswcTG

是什么导致了这个错误?

【问题讨论】:

您正在使用compact('data', 'users') 将数据发送到您的视图。首先,users 变量在您的 show 方法的上下文中不存在,因此无法发送。其次,您应该将'files' 添加到compact 列表中,以便在Blade 视图文件中可以使用$files 变量。此外,为了将来参考,请不要像为路线列表所做的那样使用图像而不是文本,这样可以提出更好的问题。 好的,我改了,但还是一样的错误 Blade 文件中的哪一行出现错误? @Bogdan ibb.co/dc0Ggx9 完全错误 嗯,应该可以。尝试通过运行php artisan view:clear 来清除已编译的视图。 【参考方案1】:

您将 userhome.blade.php 返回到您的控制器,但尝试将 $files 和 $data 变量放入 home.blade.php

改变

return view('userhome', compact('data', 'files'));

return view('home', compact('data', 'files'));

一切都必须正常工作;)

【讨论】:

【参考方案2】:

您需要在选项标签中使用“$filename->”对象而不是“$files->”对象。 请使用以下代码更新刀片。

 <div class="form-group">
                    <label class="text-left">Select Record</label>
                    <select name="parent_id">
                        <option value="">Select Record</option>
                        @foreach ($files as $filename)
                        <option value=" $filename->id "> $filename->filename </option>
                        @endforeach
                    </select>
                </div>

【讨论】:

以上是关于未定义变量:文件(查看:\resources\views\home.blade.php)的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 Laravel 7 中查看不同内容时,刀片视图上的 ErrorException 未定义变量

关于“环境变量未定义”的问题

未定义的变量:users(查看:C: xampp htdocs rentalmobil resources views admin user.blade.php)

在 Laravel 5.1 中传递数据控制器以查看获取未定义的变量

未定义变量:编辑器(查看:/home/marco/prova/resources/views/home.blade.php)

Jade变量插值 - 如果属性未定义,则为默认值?