婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > laravel unique驗證、確認密碼confirmed驗證以及密碼修改驗證的方法

laravel unique驗證、確認密碼confirmed驗證以及密碼修改驗證的方法

熱門標簽:熱線電話機器人 電銷招聘機器人 事業單位如何百度地圖標注 福泉電話機器人 地圖標注入哪個科目 太原極信防封電銷卡 天津營銷電話機器人加盟代理 格陵蘭島地圖標注 南寧crm外呼系統平臺

confirmed

驗證字段必須有一個匹配字段 foo_confirmation,例如,如果驗證字段是 password,必須輸入一個與之匹配的 password_confirmation 字段。

same:field

給定字段和驗證字段必須匹配

 protected $fillable = ['name', 'password'];
 
 public static $rules = [
  'name'   => 'required|unique:managers',
  'password' => 'required|confirmed',
  'password_confirmation' => 'required|same:password'
 ];
 
 public static function error_message() 
 {
  return [
   'name.required' => __('tyvalidation.name'),
   'name.unique' => __('tyvalidation.unique'),
   'password.required' => __('tyvalidation.password'),
   'password.confirmed' => __('tyvalidation.confirmed'),
  ];
 }
 
 public function setPasswordAttribute($value)
 {
  $this->attributes['password'] = Hash::make($value);
 }

經驗證,上面的驗證方式在update的時候會出問題,修改的時候會驗證unique,導致不能保存,所以需要修改下。

官網說:

Sometimes, you may wish to ignore a given ID during the unique check. For example, consider an "update profile" screen that includes the user's name, e-mail address, and location. Of course, you will want to verify that the e-mail address is unique. However, if the user only changes the name field and not the e-mail field, you do not want a validation error to be thrown because the user is already the owner of the e-mail address.

To instruct the validator to ignore the user's ID, we'll use the Rule class to fluently define the rule. In this example, we'll also specify the validation rules as an array instead of using the |character to delimit the rules:

重要的2句話是: 

有時,您可能希望在唯一檢查期間忽略給定的ID。

當然,您需要驗證電子郵件地址是否唯一。但是,如果用戶僅更改名稱字段而不更改電子郵件字段,則不希望拋出驗證錯誤,因為用戶已經是電子郵件地址的所有者,為了指示驗證者忽略用戶的ID,我們將使用Rule該類來流暢地定義規則。

use Illuminate\Validation\Rule;
 
Validator::make($data, [
  'email' => [
    'required',
    Rule::unique('users')->ignore($user->id),
  ],
]);

所以修改為

'name'   => [
     'required',
     Rule::unique('managers')->ignore($id),
    ],

在更新密碼時,我們需要驗證舊的密碼是否正確,那我們需要使用自定義驗證。

Using Closures

If you only need the functionality of a custom rule once throughout your application, you may use a Closure instead of a rule object. The Closure receives the attribute's name, the attribute's value, and a $fail callback that should be called if validation fails:

Closure接收屬性的名稱,屬性的值以及$fail在驗證失敗時應調用的回調。

$validator = Validator::make($request->all(), [
  'title' => [
    'required',
    'max:255',
    function($attribute, $value, $fail) {
      if ($value === 'foo') {
        return $fail($attribute.' is invalid.');
      }
    },
  ],
]);

所以密碼是否正確可以這樣驗證

'old_password' => [
     'required',
     function($attribute, $value, $fail) use ($manager) 
     {
      if (!Hash::check($value, $manager->password)) 
      {
       return $fail(__('tyvalidation.old_password'));
      }
     },
    ],

所有代碼如下:

create.html

div class="form-group">
      label>{!! __('tycms.name') !!}/label>
      div class="input-group">
       div class="input-group-prepend">
        span class="input-group-text change-bg">T/span>
       /div>
       input type="text" class="form-control is-invalid" name="name" value="" placeholder="{!! __('tycms.name') !!}" required />
       @foreach ($errors->get('name') as $message) 
       div class="invalid-feedback">
        {{ $message }}
       /div>
       @endforeach
      /div>
     /div>
     div class="form-group">
      label>{!! __('tycms.password') !!}/label>
      div class="input-group">
       div class="input-group-prepend">
        span class="input-group-text change-bg">T/span>
       /div>
       input type="password" class="form-control is-invalid" name="password" value="" placeholder="{!! __('tycms.password') !!}" required />
       @foreach ($errors->get('password') as $message) 
       div class="invalid-feedback">
        {{ $message }}
       /div>
       @endforeach
      /div>
     /div>
     div class="form-group">
      label>{!! __('tycms.confirm_password') !!}/label>
      div class="input-group">
       div class="input-group-prepend">
        span class="input-group-text change-bg">T/span>
       /div>
       input type="password" class="form-control is-invalid" name="password_confirmation" value="" placeholder="{!! __('tycms.confirm_password') !!}" required />
       @foreach ($errors->get('password') as $message) 
       div class="invalid-feedback">
        {{ $message }}
       /div>
       @endforeach
      /div>
     /div>

store

 $input_all = $request->all();
   $validator = Validator::make($input_all, Manager::rules(), Manager::error_message());
   if ($validator->fails()) 
   {
     return redirect()
           ->action($this->class_basename . '@create')
           ->withErrors($validator)
           ->withInput();
   }
   $model = Manager::create($input_all);

edit.html

div class="form-group">
      label>{!! __('tycms.name') !!}/label>
      div class="input-group">
       div class="input-group-prepend">
        span class="input-group-text change-bg">T/span>
       /div>
       input type="text" class="form-control is-invalid" name="name" value="{{ $model->name }}" readonly="readonly" placeholder="{!! __('tycms.name') !!}" required />
       @foreach ($errors->get('name') as $message) 
       div class="invalid-feedback">
        {{ $message }}
       /div>
       @endforeach
      /div>
     /div>
     div class="form-group">
      label>{!! __('tycms.old_password') !!}/label>
      div class="input-group">
       div class="input-group-prepend">
        span class="input-group-text change-bg">T/span>
       /div>
       input type="password" class="form-control is-invalid" name="old_password" value="" placeholder="{!! __('tycms.old_password') !!}" required />
       @foreach ($errors->get('old_password') as $message) 
       div class="invalid-feedback">
        {{ $message }}
       /div>
       @endforeach
      /div>
     /div>
     div class="form-group">
      label>{!! __('tycms.password') !!}/label>
      div class="input-group">
       div class="input-group-prepend">
        span class="input-group-text change-bg">T/span>
       /div>
       input type="password" class="form-control is-invalid" name="password" value="" placeholder="{!! __('tycms.password') !!}" required />
       @foreach ($errors->get('password') as $message) 
       div class="invalid-feedback">
        {{ $message }}
       /div>
       @endforeach
      /div>
     /div>
     div class="form-group">
      label>{!! __('tycms.confirm_password') !!}/label>
      div class="input-group">
       div class="input-group-prepend">
        span class="input-group-text change-bg">T/span>
       /div>
       input type="password" class="form-control is-invalid" name="password_confirmation" value="" placeholder="{!! __('tycms.confirm_password') !!}" required />
       @foreach ($errors->get('password') as $message) 
       div class="invalid-feedback">
        {{ $message }}
       /div>
       @endforeach
      /div>
     /div>

update

$input_all = $request->all();
   $model = $this->findById($id);
 
   $validator = Validator::make($input_all, Manager::rules($id, $model), Manager::error_message());
   if ($validator->fails()) 
   {
     return redirect()
           ->action($this->class_basename . '@edit', ['id' => $id])
           ->withErrors($validator)
           ->withInput();
   }
   $model->fill($input_all);
   $model->save();
 

Models\Manager

protected $table = 'managers';
 
 protected $fillable = ['name', 'password'];
 
 /*public static $rules = [
  'name'   => 'required|unique:managers',
  'password' => 'required|confirmed',
  'password_confirmation' => 'required|same:password'
 ];*/
 
 public static function rules ($id = null, $manager = null) 
 {
  if (empty($id))
  {
   $rules = [
    'name'   => 'required|unique:managers',
    'password' => 'required|confirmed',
    'password_confirmation' => 'required|same:password'
   ];
  } else 
  {
   $rules = [
    'name'   => [
     'required',
     Rule::unique('managers')->ignore($id),
    ],
    'old_password' => [
     'required',
     function($attribute, $value, $fail) use ($manager) 
     {
      if (!Hash::check($value, $manager->password)) 
      {
       return $fail(__('tyvalidation.old_password'));
      }
     },
    ],
    'password' => 'required|confirmed',
    'password_confirmation' => 'required|same:password'
   ];
  }
  return $rules;
 }
 
 public static function error_message() 
 {
  return [
   'name.required' => __('tyvalidation.name'),
   'name.unique' => __('tyvalidation.unique'),
   'password.required' => __('tyvalidation.password'),
   'password.confirmed' => __('tyvalidation.confirmed'),
  ];
 }
 
 public function setPasswordAttribute($value)
 {
  $this->attributes['password'] = Hash::make($value);
 }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Laravel中unique和exists驗證規則的優化詳解

標簽:自貢 金華 香港 郴州 佳木斯 通化 寶雞 阿克蘇

巨人網絡通訊聲明:本文標題《laravel unique驗證、確認密碼confirmed驗證以及密碼修改驗證的方法》,本文關鍵詞  laravel,unique,驗證,確認,密碼,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《laravel unique驗證、確認密碼confirmed驗證以及密碼修改驗證的方法》相關的同類信息!
  • 本頁收集關于laravel unique驗證、確認密碼confirmed驗證以及密碼修改驗證的方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲女同女同女同女同女同69| 石原莉奈在线亚洲二区| 亚洲精品视频在线观看网站| 久久超碰97中文字幕| 在线免费观看日本欧美| 精品伦理精品一区| 亚洲r级在线视频| 99国产精品久久久久久久久久久| 日韩一本二本av| 午夜伦欧美伦电影理论片| caoporn国产一区二区| 久久久久久久网| 日本不卡不码高清免费观看| 中文字幕一区二区三区乱码在线| 蜜桃久久精品一区二区| 欧美特级限制片免费在线观看| 中文字幕在线观看不卡视频| 丰满白嫩尤物一区二区| 精品久久久三级丝袜| 精品一区二区免费在线观看| 3d动漫精品啪啪一区二区竹菊| 亚洲电影第三页| 91激情五月电影| 亚洲精品成人精品456| 91麻豆国产在线观看| 日韩毛片视频在线看| 麻豆精品在线视频| 欧美影视一区二区三区| 国产夜色精品一区二区av| 欧美在线你懂的| 欧美女孩性生活视频| 亚洲一区二区精品视频| 欧美一区二区三区日韩| 欧美精品一区男女天堂| 国产精品白丝在线| 成人爽a毛片一区二区免费| 久久综合久色欧美综合狠狠| 国产老女人精品毛片久久| 国产高清不卡一区| 色噜噜狠狠色综合欧洲selulu| 国产亚洲美州欧州综合国| 91国偷自产一区二区三区观看| 欧美日本国产视频| 国内精品久久久久影院薰衣草| 一区二区视频在线| 黑人精品欧美一区二区蜜桃| 欧美日韩国产成人在线免费| 国产精品天天看| 亚洲精品国产高清久久伦理二区| 亚洲综合999| 精品久久久久99| 一本久久精品一区二区| 欧美日韩中文另类| 欧美一区二区三区免费观看视频 | av日韩在线网站| 美洲天堂一区二卡三卡四卡视频| 夜色激情一区二区| 国产午夜一区二区三区| 亚洲欧洲国产日韩| 亚洲第一综合色| 日韩电影在线一区二区三区| 国内精品视频一区二区三区八戒| 美女视频黄 久久| 亚洲影院免费观看| 久久久午夜电影| 精品在线观看免费| 国产精品久久久久久久久久久免费看 | 国产成都精品91一区二区三| 日本91福利区| 欧美激情中文字幕一区二区| 日韩欧美电影一二三| 欧美videos大乳护士334| 在线观看免费亚洲| 丝袜国产日韩另类美女| 午夜精品免费在线| 国产精品麻豆网站| www国产精品av| 欧美日韩aaa| 国产**成人网毛片九色| 国产精品久99| 欧美精品自拍偷拍| 亚洲制服丝袜av| 另类小说一区二区三区| 国模冰冰炮一区二区| 三级影片在线观看欧美日韩一区二区| 欧美激情中文不卡| 亚洲一区二区免费视频| 婷婷中文字幕一区三区| 婷婷综合五月天| 337p亚洲精品色噜噜噜| 精品av久久707| 26uuu精品一区二区| 日韩一区精品视频| 免费成人在线视频观看| 久久成人免费网| 成人欧美一区二区三区白人| 久久免费美女视频| 国产精品成人一区二区艾草| 午夜亚洲福利老司机| 精品写真视频在线观看| 97久久超碰精品国产| 91免费观看国产| 欧美猛男男办公室激情| 国产午夜亚洲精品不卡| 午夜视黄欧洲亚洲| 久久精品国产99久久6| 一本大道av一区二区在线播放| 欧美日韩激情一区二区三区| 2020国产精品久久精品美国| 亚洲18色成人| 91黄色免费观看| 国产欧美中文在线| 精品乱人伦一区二区三区| 国产片一区二区| 九一久久久久久| 精品捆绑美女sm三区| 欧美激情在线免费观看| 国产乱码精品一区二区三区忘忧草 | 美女视频黄免费的久久| 色系网站成人免费| 精品999在线播放| 国产欧美va欧美不卡在线| 亚洲精品一区二区三区蜜桃下载| 一区二区三区不卡视频在线观看| 成av人片一区二区| 依依成人综合视频| 精品婷婷伊人一区三区三| 欧美午夜宅男影院| 日韩黄色小视频| 久久精品人人爽人人爽| 午夜视黄欧洲亚洲| 91精品国产乱码久久蜜臀| 久久精品国产一区二区三| 日韩精品国产欧美| 成人国产电影网| 久久蜜桃香蕉精品一区二区三区| 国产经典欧美精品| 日韩中文字幕麻豆| 日本丰满少妇一区二区三区| 亚洲午夜精品久久久久久久久| 91小视频在线| 亚洲一区二区三区四区在线免费观看| 国产成人精品免费在线| 欧美日本在线视频| 99久精品国产| 亚洲亚洲人成综合网络| 国产盗摄一区二区| 国产精品久久久久9999吃药| 亚洲成av人片在线观看| 亚洲欧洲精品成人久久奇米网| 丁香桃色午夜亚洲一区二区三区| 久久蜜臀中文字幕| 2020国产成人综合网| 日韩**一区毛片| 久久九九久久九九| 欧美亚洲高清一区| 国产精品理论在线观看| 国产一本一道久久香蕉| 国产成人免费视频一区| 久久久久久麻豆| 国产毛片精品一区| 国产精品丝袜一区| 亚洲一区二区三区不卡国产欧美 | 色呦呦国产精品| 日本欧美加勒比视频| 欧美撒尿777hd撒尿| 大胆亚洲人体视频| 欧美天堂一区二区三区| 亚洲一区免费观看| 国产亚洲1区2区3区| 一区二区三区波多野结衣在线观看| 日本欧美一区二区三区乱码 | 色一区在线观看| 亚洲国产日产av| 久久伊人中文字幕| 成人爽a毛片一区二区免费| 亚洲国产综合人成综合网站| 欧美私人免费视频| 国产酒店精品激情| 国产欧美日韩亚州综合 | 亚洲黄色免费电影| 欧美久久久久久久久中文字幕| 麻豆高清免费国产一区| 1区2区3区国产精品| 欧美成人欧美edvon| 欧美午夜免费电影| 国产一区二区在线观看免费| 欧美成人精品二区三区99精品| 国产91在线观看丝袜| 亚洲蜜臀av乱码久久精品蜜桃| 日韩亚洲国产中文字幕欧美| eeuss鲁片一区二区三区在线看| 亚洲人成7777| 亚洲素人一区二区| 精品入口麻豆88视频| 91精品国产高清一区二区三区蜜臀| 3d成人h动漫网站入口| 91精品国产色综合久久ai换脸| 日韩电影在线一区二区三区| 一本一道波多野结衣一区二区|