В моем текущем проекте (система управления школой) я хочу дать администраторам возможность регистрировать пользователей. Например, администраторы могут создавать курсы и предметы, что мне удалось сделать с помощью контроллеров ресурсов. Тем не менее, я думал, что смогу сделать то же самое для пользователей, поскольку процесс кажется мне тем же. То есть: я могу показывать, редактировать, создавать, обновлять и удалять пользователей.
Однако до сих пор я столкнулся с несколькими проблемами. Прямо сейчас я могу создавать пользователей, но не обновлять их.
Вот мой код:
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',
]);
});
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, поэтому я немного растерялся.