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

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

Laravel 檢查多個字段的獨特驗證

Laravel 檢查多個字段的獨特驗證

PHP
臨摹微笑 2023-08-11 16:19:48
我有subject表和字段是standard_id、stream_id、medium_id、board_id和subject_name許多其他字段。我想添加唯一的規則,該規則對于, , ,字段subject_name是唯一的。standard_idstream_idmedium_idboard_id$validator = Validator::make( $inputs,             [                'v_name' => [                        'required',                        Rule::unique( 'tbl_subject' )->ignore( $id, 'id' ),                    ],            ],            [                'v_name.required' => 'Name is required',                'unique' => 'Name address already exits.',            ]        );例子standard_id, stream_id, medium_id, board_id subject_name1             2            1            3          A3             2            4            1          B1             3            1            4          c驗證就像 subject_name "A" 對于 1, 2, 1, 3 是唯一的。 B 對于 3, 2, 4, 1 是唯一的。但是 subject_name "A" 對于 2,2,1,3 不是唯一的,依此類推。
查看完整描述

1 回答

?
DIEA

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

*** 與OP討論后***

問題應該說明他們正在嘗試插入一條記錄,并希望驗證數據庫的唯一性。一種方法是通過自定義規則,如下所示:

class UniqueSubject implements Rule

{

? ? private $keys;


? ? public function __construct(array $keys) {

? ? ? ? $this->keys = $keys;

? ? }


? ? /**

? ? ?* Determine if the validation rule passes.

? ? ?*

? ? ?* @param? string? $attribute

? ? ?* @param? mixed? $value

? ? ?* @return bool

? ? ?*/

? ? public function passes($attribute, $value)

? ? {

? ? ? ? return ! Subject::where($this->keys)->where('subject_name', $value)->exists();

? ? }


? ? /**

? ? ?* Get the validation error message.

? ? ?*

? ? ?* @return string

? ? ?*/

? ? public function message()

? ? {

? ? ? ? return 'The Subject Name must be unique for the given standard, stream, medium and board.';

? ? }

}

然后您可以在規則中使用驗證,例如:


$keys = $request->only('i_standard_id', 'i_stream_id', 'i_board_id', 'i_medium_id');


$validator = Validator::make( $inputs, [

? ? ...

? ? 'subject_name' => [

? ? ? ? 'required',

? ? ? ? 'string',

? ? ? ? new UniqueSubject($keys)

? ? ],

? ? ...

]);



查看完整回答
反對 回復 2023-08-11
  • 1 回答
  • 0 關注
  • 177 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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