未定义变量:用户(视图:\resources\views\home.blade.php)
Undefined variable: users (View: \resources\views\home.blade.php)
您好,我正在尝试从下拉列表中的用户 table 获取一些数据(所有用户名),但出现错误:未定义的变量:用户
控制器:
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'));
}
blade 文件:
<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');
});
如何解决?
从压缩函数中删除注释项:
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);
}
控制器:
public function show($id)
{
$data = File::findOrFail($id);
$users = \App\User::all();
return view('userhome', compact('data', '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>
路线:
Route::get('users', 'HomeController')
唯一需要仔细检查的是您的视图名称,视图文件是否名为 userhome.blade.php
- 如果不是,它只是被称为 home.blade.php
更改 return view('...')
部分到返回 UserController
的视图的名称
在顶部 use App\User;
然后
$users=User::all();
return view('home', compact('data', 'users'));
在 blade 文件中首先检查 {{cont($users)}}
然后去啊
您好,我正在尝试从下拉列表中的用户 table 获取一些数据(所有用户名),但出现错误:未定义的变量:用户
控制器:
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'));
}
blade 文件:
<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');
});
如何解决?
从压缩函数中删除注释项:
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);
}
控制器:
public function show($id)
{
$data = File::findOrFail($id);
$users = \App\User::all();
return view('userhome', compact('data', '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>
路线:
Route::get('users', 'HomeController')
唯一需要仔细检查的是您的视图名称,视图文件是否名为 userhome.blade.php
- 如果不是,它只是被称为 home.blade.php
更改 return view('...')
部分到返回 UserController
在顶部 use App\User;
然后
$users=User::all();
return view('home', compact('data', 'users'));
在 blade 文件中首先检查 {{cont($users)}} 然后去啊