Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
У меня есть таблички `users` и `user_groups`, и в `user_groups` есть колонка `access_level`
Сейчас у меня `routes/web.php` выглядит вот так:
Route::group(['middleware' => 'auth'], function()
{
Route::get('/points', 'PagesController@points');
Route::get('/users', 'PagesController@users');
Route::get('/users/groups', 'PagesController@user_groups');
Route::resource('point', 'PointController');
Route::resource('user', 'UserController');
Route::resource('users/group', 'UserGroupController');
});
Auth::routes();
Route::get('/logout', 'Auth\LoginController@logout')->name('logout');
Как можно в `routes/web.php` распределить доступ к роутам в зависимости от значения `access_level` конкретного пользователя (залогиненного)?
Я хотел получить `access_level` перед группой роутов в middleware, но взять это значение не получается в связи с особенностями Laravel:
use App\UserGroup;
$access_level = UserGroup::find( auth()->user()->group_id )->access_level;
Route::group(['middleware' => 'auth'], function($access_level)
{
if ($access_level == 1) {
Route::get('/points', 'PagesController@points');
Route::get('/users', 'PagesController@users');
Route::get('/users/groups', 'PagesController@user_groups');
Route::resource('point', 'PointController');
Route::resource('user', 'UserController');
Route::resource('users/group', 'UserGroupController');
}
});
В таком случае выдает ошибку: `Trying to get property 'group_id' of non-object`
Можно ли как-то взять значение `access_level` из таблички перед группой роутов или может в Laravel есть какой-то другой метод специально для этого?
Не в сети
Страницы 1