首页 > 解决方案 > 未定义变量:用户(查看:\resources\views\home.blade.php)

问题描述

您好我试图从下拉列表中的用户表中获取一些数据(所有用户名),但它给出了错误:未定义的变量:用户

控制器:

  public function show($id)
  {
    $data = File::findOrFail($id);

    //$files = \DB::table('files')->get();
    $users = \DB::table('users')->get();

    return view('userhome', compact('data', /*'files',*/ 'users'));
  }

刀片文件:

  <div class="form-group">
                    <label class="text-left">Select Student</label>
                    <select name="parent_id">
                        <option value="">Select parent</option>
                        @foreach ($users as $user)
                <option value="{{ $user->id }}">{{ $user->name }}</option>
                        @endforeach
                    </select>
                </div>

路线:

  Auth::routes();

  Route::group(['middleware' => ['auth']], function(){

  Route::get('/home', 'HomeController@index');

  Route::resource('file','FileController');

  });

如何解决?

标签: laraveleloquentlaravel-5.8

解决方案


从 compact 函数中删除注释项:

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

home而看法不应该userhome。由于错误来自其他地方。

- 编辑

在你home.blade.php删除这个:

<div class="form-group">
    <label class="text-left">Select Student</label>
    <select name="parent_id">
        <option value="">Select parent</option>
        @foreach ($users as $user)
            <option value="{{ $user->id }}">{{ $user->name }}</option>
        @endforeach
    </select>
</div>

userhome.blade.php如果您没有这样的文件,请将此代码移动到您的文件中。

或者在你的HomeController index函数中添加这个:

public function index()
{
    $users = User::all();

    if (Auth::user()->admin == 0) {
        $data = Auth::user()->files;
        return view('home', compact('data', 'users'));
    } else {
        $users['users'] = \App\User::all();
        return view('layouts.master', $users);
    }
    //return view('home');
    return view('home', compact('users'))->withData(null);
}

推荐阅读