未定义的变量:文件(视图:\ resources \ views \ home.blade.php)

时间:2019-06-25 17:49:00

标签: laravel eloquent laravel-5.8

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

控制器:

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

什么原因导致此错误?

2 个答案:

答案 0 :(得分:2)

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

更改

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

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

所有人都必须工作;)

答案 1 :(得分:1)

您需要在options标记中使用“ $ 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>