我在PHP中完全是noob,但我的问题是,在验证后,特定输入有错误,如何在特定输入中插入一个类?
示例,如果我在验证中出现此错误:“电子邮件字段是必需的。”
如何在电子邮件输入中插入特定类?
登录路线:
Route::group(['prefix' => 'admin'], function () {
Route::get('/', 'Admin\AdminController@index');
Route::get('login', 'Admin\AuthController@getLogin');
Route::post('login', 'Admin\AuthController@postLogin');
Route::get('logout', 'Admin\AuthController@getLogout');
});
AdminController:
class AdminController extends AdminBaseController
{
public function index()
{
if(Auth::user()){
return view('admin/pages/admin/index');
}
return view('admin/pages/login/index');
}
}
AuthController:
class AuthController extends Controller
{
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
private $redirectTo = '/admin';
public $loginPath = '/admin';
public function __construct()
{
$this->middleware('guest', ['except' => 'getLogout']);
}
public function getLogin()
{
if(Auth::user()){
return redirect('/admin');
}
return view('admin/pages/login/index');
}
public function postLogin(Request $request)
{
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|min:6',
]);
}
}
我的刀片形式:
<form class="s-form" role="form" method="POST" action="/admin/login">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<div class="s-form-item text">
<input type="text" name="email" value="{{ old('email') }}" placeholder="Email">
</div>
<div class="s-form-item text">
<input type="password" name="password" value="{{ old('password') }}" placeholder="Senha">
</div>
<div class="s-form-item">
@if ($errors->has())
<div class="alert alert-danger">
@foreach ($errors->all() as $error)
{{ $error }}<br>
@endforeach
</div>
@endif
</div>
<div class="s-form-item s-btn-group s-btns-right">
<input class="s-btn" type="submit" value="Entrar">
</div>
</form>
答案 0 :(得分:2)
您可以将参数传递给has
方法以指定特定密钥。
例如,对于您的电子邮件输入...
<input class="@if($errors->has('email')) some-class @endif" ... >
为了简洁,我遗漏了输入字段的其余部分。它基本上检查是否存在电子邮件输入错误。如果是这样的话,那就是某种类型的&#39;输出。否则,它会跳过它。
编辑:要回答有关如何自定义错误消息输出位置的问题,可以将get
或first
方法与has
方法结合使用。例如......
@if ($errors->has('email'))
@foreach ($errors->get('email') as $error)
<p>{{ $error }}</p>
@endforeach
@endif
has
方法已经解释过了。 get
方法检索验证错误。因为可能存在多个验证错误,所以必须循环并输出它。
在下一个示例中,我使用first
。此方法只输出第一条错误消息,因此无需循环遍历它。
@if ($errors->has('email'))
<p>{{ $errors->first('email') }}</p>
@endif