亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

laravel 中的唯一字段驗證問題

laravel 中的唯一字段驗證問題

PHP
UYOU 2022-12-30 17:50:30
我正在嘗試驗證我的 laravel 應用程序中的唯一條目以下是我的驗證數組,$website = $websiteModel->find($id);        $this->validate($request, [            'subDomainName' => ['required','regex:/^[A-Za-z0-9 ]+$/'],            'subDomainSuffix' => ['required'],             'packageType' => ['required'],            'themeid' => ['required'],            'lang' => ['required'],            'user' => ['required'],            'domain' => [                'required',                'string',                'min:2',                'max:255',                Rule::unique('apps')->ignore($website)            ],        ], $request->all());我的驗證工作正常但是,當我嘗試為我的域字段輸入重復值時,它得到了正確驗證但沒有顯示錯誤消息,說對不起名稱已經存在......<input type="text" id="domain" class="form-control" name="domain" >{!! $errors->first('domain', '<span class="help-block" role="alert">:message</span>') !!}在此跨度中,它只顯示常見錯誤消息區域中的任何內容,它顯示抱歉無法更新表單...那么我如何正確驗證該字段并顯示相關錯誤消息
查看完整描述

4 回答

?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

做這樣的事情:


根據插入請求使用


'domain' => [

   ...

   'unique:websites,domain'

]

根據更新請求使用


'domain' => [

   ...

   "unique:websites,domain,{$this->website->id}"

]

要么


'domain' => [

   ...

   Rule::unique('websites', 'domain')->ignore($this->website)

]


查看完整回答
反對 回復 2022-12-30
?
www說

TA貢獻1775條經驗 獲得超8個贊

您不需要在 ignore Rule 中傳遞重復的列來指示驗證器忽略網站域,除了它自己嗎?例如像

Rule::unique('apps')->ignore($website->id)


查看完整回答
反對 回復 2022-12-30
?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

您將 $request->all() 作為驗證消息傳遞。請試試:


$website = $websiteModel->find($id);


        $request->validate([

            'subDomainName' => ['required','regex:/^[A-Za-z0-9 ]+$/'],

            'subDomainSuffix' => ['required'], 

            'packageType' => ['required'],

            'themeid' => ['required'],

            'lang' => ['required'],

            'user' => ['required'],

            'domain' => [

                'required',

                'string',

                'min:2',

                'max:255',

                Rule::unique('apps')->ignore($website)

            ],

        ]);


查看完整回答
反對 回復 2022-12-30
?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

請試試這個 。它有助于解決你的問題


在文件頂部使用異常和驗證器


use Exception;

use Validator;


$rules = [

                'subDomainName' => 'required|unique:sub_domain_name',

            ];


            $validator = Validator::make($request->all(), $rules, $message);

            if ($validator->fails()) {

                throw new Exception(implode('\n', $validator->errors()->all()));

            }


sub_domain_name :這是數據庫列名


查看完整回答
反對 回復 2022-12-30
  • 4 回答
  • 0 關注
  • 166 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號