Поэтому я выбрал Sentinel в качестве ACL для моей CMS. И я дошел до того, что мне нужно назначать роли пользователям. Для этого мне нужно получить список всех доступных ролей. Но при запросе:
Role::all()
из моей модели (которая расширяет EloquentRole) я получаю только идентификаторы. Хотя идентификатор — хорошее начало, мне нужно больше. Предпочтительно:
Role::pluck('id', 'slug', 'name')
Я искал все возможное, чтобы найти это. Но ни документация, ни мир, кажется, не говорят ни слова об этом.
Любые советы будут с благодарностью!
Так что, похоже, я был в каком-то красноречивом потоке. Похоже на то
Role::all()
Role::pluck(...)
Действительно не работают. Но регулярно
Role::get()
делает. Whoopsie
Там в getRoles()
функция в
cartalyst/sentinel/src/Roles/RoleableInterface.php
Вы можете использовать его с \Sentinel::getRoles()
в Ларавеле.
Этот может быть более простым.
$roles = Sentinel::getRoleRepository()->get();
foreach ($roles as $role) {
echo $role->name."<br/>";
}
Чтобы получить все доступные роли в виде массива:
$roles = Sentinel::getRoleRepository()->all();
Или, если вам нужны объекты Eloquent (Role):
$roles = DB::table('roles')->get();