Эталонный маршрут с параметром - Laravel/Lumen
У меня есть маршрут, который я объявляю так;
Route::get('invite/{code}', ['middleware' => ['qwickLoggedIn'], 'uses' =>'WebController@signup_invite'])->name('signup_invite');
Как видите, у маршрута есть параметр {code}
Как я могу ссылаться на маршрут, используя route
или же url
?
Как в коде ниже?
public function account_verification () {
$referer = Request::header('referer');
if ($referer != url('login') && $referer != url('signup') && $referer != url('invite/{code}') && $referer != url('account-verification-code')) {
return redirect()->route('/');
}
$year = $this->copyright_info('2015');
return view('pages.account-verification', ['year' => $year]);
}
Я ставлю это как $referer != url('invite/{code}')
но это не работает также $referer != url('invite')
не работает так же... Также используя route('signup_invite');
Я получаю ошибку UrlGenerationException in UrlGenerationException.php line 17:
Missing required parameters for [Route: signup_invite] [URI: invite/{code}].
Любая помощь приветствуется
1 ответ
Это выглядит грязно, но вы можете разобрать $referrer
с помощью parse_url
функционировать и затем поставить условия для компонентов:
$referer = Request::header('referer');
$path = parse_url($referer, PHP_URL_PATH);
$path = explode( '/', $path );
if ($referer != url('login') && $referer != url('signup') && ( parse_url($referer, PHP_URL_HOST) == parse_url( url('/'), PHP_URL_HOST ) && $path[1] == 'invite' && !empty($path[2]) ) && $referer != url('account-verification-code')) {
return redirect()->route('/');
}