Laravel 5.6 зарегистрировать пользователя с ролью - PullRequest
0 голосов
/ 27 апреля 2018

Здравствуйте, я следил за этим уроком

https://www.5balloons.info/user-role-based-authentication-and-access-control-in-laravel/#comment-1889

Я все сделал хорошо и добавил несколько правил, пользовательскую страницу ошибок, и только администратор может регистрировать новых пользователей. в представлении / admin я вижу, что все пользователи зарегистрированы, а администратор может удалить этих пользователей.

мне нужны еще две роли, чтобы пользователи могли видеть особые представления, и я пытаюсь определить роль в форме реестра поэтому администратор может определить, кто может видеть конкретную страницу. одна роль для исполнительного пользователя и одна для премиум-пользователя.

я смог сделать это, но только добавив отношение в база данных таблица role_user

есть идеи, как это сделать с помощью регистрационной формы? без внесения в базу данных таблицы

1 Ответ

0 голосов
/ 28 апреля 2018

Я предполагаю, что вы используете шаблон Blade. Используйте следующее, чтобы добавить раскрывающийся список для выбора роли.

<select name="role">
@foreach ( $roles as $role )
  <option value="${{role->id}}">{{ $role->name }}</option>
@endforeach
</select>

Вам нужно будет предоставить имеющиеся на данный момент роли от вашей модели роли (га) до представления. Это можно сделать в вашем контроллере при рендеринге представления.

// Part of your controller
$roles = Role::all();
return view('your-view', [ 'roles' => $roles ]);

Ключевая часть здесь - return view('your-view', [ 'roles' => $roles ]). Второй параметр в функции view - это данные, которые передаются в само представление. См. Документы по Blade для получения дополнительной информации.

Когда вы отправляете свою форму, вы можете «прикрепить» роль к вашей модели пользователя после ее сохранения.

$user = new User();
// Assign user info here
$user->save();
$user->roles()->attach($request->role);
  • ->roles() - это модель, принадлежащая пользователю, к которому мы хотим присоединиться.
  • ->attach($request->role) - $request->role - это идентификатор роли, которую мы хотим прикрепить к вновь созданному пользователю.

Вы можете читать больше в документах о присоединении и назначении различных отношений другим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...