【发布时间】:2019-04-06 02:27:24
【问题描述】:
我在 Laravel 5.4 中验证电子邮件长度时遇到问题。
在迁移中,我默认创建了电子邮件字段,并且在 DB 中以 varchar (191) utf8mb4_unicode_ci 正确完成。
在前端验证没有问题,但在后端最多只能允许 73 个字符。
在控制器中保存和更新方法,我试过了:
$this->validate($request, [
// ...
'email' => 'nullable|email',
// ....
]);
$this->validate($request, [
// ...
'email' => 'nullable|email|max:191',
// ....
]);
查看表单输入:
{!! Form::label('email', 'Email:') !!}
{!! Form::email('email', null, ['class' => 'form-control' . ($errors->has('email') ? ' is-invalid' : ''), 'maxlength' => 191]) !!}
@if ($errors->has('email'))
<span class="invalid-feedback">{{ $errors->first('email') }}</span>
@endif
这通过了验证(73 个字符):
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@test.com
但是这个或更长的,没有通过验证(74 个字符):
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@test.com
(我也尝试了其他字符,不只是 aaa,以防万一它不是没有运气的长度)
我做错了什么?
【问题讨论】:
标签: laravel validation