Рабочий пример для Турции, просто измените
d{9}
в соответствии с вашими потребностями и начните использовать его.
function validateMobile($phone)
{
$pattern = "/^(05)\d{9}$/";
if (!preg_match($pattern, $phone))
{
return false;
}
return true;
}
$phone = "0532486061";
if(!validateMobile($phone))
{
echo 'Incorrect Mobile Number!';
}
$phone = "05324860614";
if(validateMobile($phone))
{
echo 'Correct Mobile Number!';
}
Вы пытаетесь перенаправить на указанный маршрут , чье имя login
, но у вас нет маршрутов с таким именем:
Route::post('login', [ 'as' => 'login', 'uses' => 'LoginController@do']);
'as'
часть второго параметра определяет имя маршрута. Первый строковый параметр определяет маршрут .
В приложении \ Exceptions \ Handler.php
protected function unauthenticated($request, AuthenticationException $exception)
{
if ($request->expectsJson()) {
return response()->json(['error' => 'Unauthenticated.'], 401);
}
return redirect()->guest(route('auth.login'));
}
use Illuminate\Auth\AuthenticationException;
– totymedli
22 May 2018 в 23:29
Недавно я столкнулся с этой ошибкой после использования встроенной проверки подлинности Laravel с помощью php artisan make:auth
. Когда вы запустите эту команду, эти новые маршруты добавляются в ваш файл web.php:
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Я, должно быть, случайно удалил эти маршруты. Запуск php artisan make:auth
снова восстановил маршруты и решил проблему. Я запускаю Laravel 5.5.28.
Попробуйте этот метод:
найдите этот файл
«RedirectifAuthenticated.php»
blockquote>обновите следующее, как вы предпочитают
if (Auth::guard($guard)->check()) { return redirect('/'); }
$ guard, так как arg будет принимать имя настраиваемого защитного устройства, которое вы установили, например. «admin», тогда это должно быть так.
if (Auth::guard('admin')->check()) { return redirect('/admin/dashboard'); }else{ return redirect('/admin/login'); }
Вам нужно добавить следующую строку в файл маршрутов web.php:
Auth::routes();
Если у вас есть настраиваемые маршруты аутентификации, убедитесь, что у вас / login route есть 'as' => 'login «
В случае API, или пусть скажем при внедрении JWT. Средство промежуточного распространения JWT выбрасывает это исключение, когда оно не может найти токен и будет пытаться перенаправить на маршрут входа в систему. Поскольку он не смог найти какой-либо журнал в указанном маршруте, он выбрасывает это исключение. Вы можете изменить маршрут в «app \ Exceptions \ Handler.php»
использовать Illuminate \ Auth \ AuthenticationException;
protected function unauthenticated($request, AuthenticationException $exception){
return $request->expectsJson()
? response()->json(['message' => $exception->getMessage()], 401)
: redirect()->guest(route('ROUTENAME'));
}
Laravel ввел Именованные маршруты в Laravel 4.2.
ЧТО ТАКОЕ ИМЕНА МАРШРУТЫ?
Именованные маршруты позволяют вам указывать имена для вашего маршрута маршрутизатора. Следовательно, используя имя, мы можем вызвать маршруты в требуемом файле.
КАК СОЗДАТЬ ИМЕНЕМЫЕ МАРШРУТЫ?
Именованные маршруты созданы двумя способами: as и name ()
МЕТОД 1:
Route::get('about',array('as'=>'about-as',function() { return view('about'); } ));
МЕТОД 2:
Route::get('about',function() { return view('about'); })->name('about-as');
Как мы используем в представлениях?
<a href="{{ URL::route("about-as") }}">about-as</a>
Следовательно, laravel 'middleware' => 'auth' уже предопределено для перенаправления в качестве страницы входа, если пользователь еще не выполнил вход в систему. Нам следует использовать как ключевое слово
Route::get('login',array('as'=>'login',function(){ return view('login'); }));
Заменить в ваших представлениях (файлы лезвий) все
{{route ('/')}} ----- by ----> {{url ('/')}}
Route::post('login', 'LoginController@do')->name('login');
работать одинаково и читать немного чище? – Anovative 25 July 2018 в 15:50