首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用数据采集卡检查18岁以上用户的年龄

使用数据采集卡检查18岁以上用户的年龄
EN

Stack Overflow用户
提问于 2018-10-09 09:55:23
回答 2查看 1K关注 0票数 0

我正在工作的一个Laravel网络应用程序,这是很好的工作。我对它有点新,并希望添加一个功能,根据该功能,Larvel应该验证用户输入的日期,并确保它超过18年。如果不是这样,则向前面的用户抛出一个错误。请帮忙?

前端部分表单

代码语言:javascript
复制
<form method="POST" action="{{ route('b2c.getplans') }}" id="travel_form"  accept-charset="UTF-8">

        <input type="hidden" name="_token" value="{{ csrf_token() }}">

 <div class="form-group {{ $errors->has('dob') ? ' has-error' : '' }}">
      <input type="date" class="form-input" name="dob" value="{{ old('dob') }}" required>
      <label>Date of Birth *</label>
      <div class="error-label">Field is required!</div>
      <div class="check-label"></div>
        @if ($errors->has('dob'))
            <span class="help-block">
            <strong>{{ $errors->first('dob') }}</strong>
            </span>
        @endif
    </div>

<button type="submit" style="cursor:pointer;"> Get Plans</button>

  </form>

控制器

代码语言:javascript
复制
 //Post Request of plan entries
    public
    function validatePlanEntries(Request $request)
    {

        $validation = $this->validate($request, [
            'dob' => 'required'
        ]);

}

路由

代码语言:javascript
复制
Route::post( '/getplans', 'B2CController@validatePlanEntries')->name('b2c.getplans');
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-09 10:02:31

AppServiceProvider中的boot()函数中,放置此自定义验证。

AppServiceProvider

代码语言:javascript
复制
public function boot()
{
    Validator::extend('valid_birth_date', function ($attribute, $value, $parameters, $validator){

        $date_different = date_diff(new \DateTime($value), new \DateTime())->y;

        return $date_different >= 18;
    });
}

控制器

代码语言:javascript
复制
$validation = $this->validate($request, [
    'dob' => 'required|valid_birth_date'
],[
    'dob.valid_birth_date' => 'your custom message'
]);
票数 0
EN

Stack Overflow用户

发布于 2018-10-09 10:05:16

您可以创建您的自定义验证器的年龄,也许这会给您一个想法:$validation = $this->validate($request, [ 'dob' => [ 'required', function ($attribute, $value, $fail) { $now = Carbon::now(); $userDob = Carbon::parse($value); if ($userDob->diffInYears($now) <= 18) { $fail('You are less than 18 years old'); } }, ] ]);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52718170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档