【发布时间】:2018-09-10 23:57:46
【问题描述】:
在我当前的项目(学校管理系统)中,我想让管理员能够注册用户。例如,管理员可以创建课程和科目,我已经使用资源控制器设法做到了。但是,我认为我可以为用户做同样的事情,因为这个过程对我来说是一样的。即:我可以显示、编辑、创建、更新和删除用户。
但是,到目前为止,我遇到了几个问题。现在我可以创建用户,但不能更新他们。
这是我的代码:
web.php
Route::middleware(['auth', 'admin'])->group(function () {
Route::get('/admin', 'HomeController@admin');
Route::post('register', 'UserController@store');
Route::resources([
'admin/cursos' => 'CursoController',
'admin/turmas' => 'TurmaController',
'admin/semestres' => 'SemestreController',
'admin/materias' => 'MateriaController',
'admin/usuarios' => 'UserController',
]);
});
用户控制器.php
public function update(Request $request, $id)
{
$rules = array(
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'role' => 'required|string',
'password' => 'required|string|min:6|confirmed',
);
$validator = validator::make(Input::all(), $rules);
if ($validator->fails()) {
// return dd();
return Redirect::to('/admin/usuarios/' . $id . '/edit')
->withErrors($validator);
} else {
// store
$user = User::find($id);
$user->name = Input::get('name');
$user->email = Input::get('email');
$user->role = Input::get('role');
$user->password = Input::get('password');
$user->save();
// redirect
Session::flash('message', 'Sucesso!');
return Redirect::to('/admin/usuarios');
}
}
每次我尝试更新用户信息时验证都会失败。这里到底发生了什么?我对 Laravel 比较陌生,所以我现在有点迷茫。
【问题讨论】:
-
Validation fails- 究竟如何?什么失败了,消息是什么?据我们所知,您可能在更新表单上将name留空,因此验证正确失败。这里没有足够的信息来提供帮助而无需猜测......