Я запускаю свой первый проект Laravel (первый проект проекта MVC / OOPHP) и могу использовать некоторую помощь с маршрутами.
Я следовал руководству в https://medium.com/employbl/easily-build-administrator-login-into-a-laravel-5-app-8a942e4fef37, чтобы добавить проверку, если пользовательэто админ при загрузке страницы.Он работает для маршрутов обычного просмотра, например,
Route::get('/admin/something', 'AdminController@admin_something')
->middleware('is_admin')
->name('admin');
Но теперь у меня есть ресурсный маршрут и появляется ошибка, когда я добавляю две -> строки в маршрут.Так что это работает без аутентификации:
Route::resource('thingies', 'ThingyController');
Но с этим:
Route::resource('thingies', 'ThingyController')
->middleware('is_admin')
->name('admin');
Я получаю ошибку Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_RECOVERABLE_ERROR) Слишком мало аргументов для функцииОсветить \ Routing \ PendingResourceRegistration :: name (), 1 передается в /var/www/routes/web.php в строке 24 и ожидается ровно 2
Что мне нужно сделать по-другому, чтобы добавить эту аутентификацию вресурсный маршрут?
Функция is_admin () из учебника:
const ADMIN_TYPE = 'admin';
const DEFAULT_TYPE = 'default';
public function isAdmin() {
return $this->type === self::ADMIN_TYPE;
}
И промежуточное ПО:
namespace App\Http\Middleware;
use Closure;
class IsAdmin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(auth()->user()->isAdmin()) {
return $next($request);
}
return redirect('home');
}
}