Предоставленный шаблон блэйда содержит неверный синтаксис блэйда, который преобразуется в недопустимый php (||
преобразуется в обычный текст вместо операции OR
).
Извлечение полученного php ниже:
Это можно исправить, дважды используя @error
и enderror
:
<form action="{{ route('test.store') }}" method="post">
<input id="user_login" type="text" class="form-control @error('email') is-invalid @enderror @error('mobile') is-invalid @enderror" name="user_login" value="{{ old('user_login') }}" required autocomplete="user_login" autofocus>
@error('user_login')
Чтобы добавить дополнительное поле для аутентификации, можно использовать следующее:
resources / auth / login.blade. php
<form method="POST" action="{{ route('login') }}">
@csrf
<div class="form-group row">
<label for="phone" class="col-md-4 col-form-label text-md-right">{{ __('Phone') }}</label>
<div class="col-md-6">
<input id="phone" type="text" class="form-control @error('phone') is-invalid @enderror" name="email" value="{{ old('phone') }}" required autocomplete="email" autofocus>
@error('phone')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" autocomplete="email" autofocus>
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
app / Http / Auth / LoginController. php
Переопределение метода username()
для использования телефона при наличии и отправки по электронной почте в качестве запасного.
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/home';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function username()
{
return request()->has('phone') ? 'phone' : 'email';
}
}
или с одним полем:
<div class="form-group row">
<label for="user_identifier" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address/Phone') }}</label>
<div class="col-md-6">
<input id="user_identifier" type="text" class="form-control @error('user_identifier') is-invalid @enderror" name="user_identifier" value="{{ old('user_identifier') }}" autofocus>
@error('user_identifier')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
и связанный метод LoginController
:
public function username()
{
$identifier = request()->get('user_identifier');
if(filter_var($identifier, FILTER_VALIDATE_EMAIL)){
return 'email';
}
return 'phone';
}