我有一個(gè)簡(jiǎn)單的表單,在數(shù)據(jù)庫(kù)中存儲(chǔ)一些數(shù)據(jù),對(duì)于 Title 字段,我有一個(gè) is_unique 驗(yàn)證規(guī)則以及其他規(guī)則。以下是我的 TaskModel 驗(yàn)證規(guī)則:
protected $validationRules = [ 'Title' => 'required|min_length[5]|max_length[15]|is_unique[tasks.Title]', 'Description' => 'required|max_length[300]', 'CreatedAt' => 'required', 'UpdatedAt' => 'required', 'DueDate' => 'required|ValidateDueDate[DueDate]', 'AssignedTo' => 'required', 'Author' => 'required' ];
現(xiàn)在,將數(shù)據(jù)添加到數(shù)據(jù)庫(kù)時(shí),一切都按預(yù)期運(yùn)行。 問(wèn)題是,當(dāng)我嘗試更新記錄時(shí),假設(shè)我更改了作者姓名,當(dāng)我提交表單時(shí),它說(shuō)標(biāo)題應(yīng)該是唯一的。我希望它忽略我正在編輯的數(shù)據(jù)庫(kù)中的記錄行,并與其他人檢查輸入的唯一性。 你能幫助我實(shí)現(xiàn)這一目標(biāo)嗎?我正在考慮通過(guò)表單傳遞記錄 ID,并在檢查唯一性時(shí)忽略它,但我不知道如何將 ID 傳遞給驗(yàn)證規(guī)則。
您可以將行的 ID 作為參數(shù)傳遞到 is_unique 規(guī)則中。喜歡
is_unique[tasks.Title,Id,{Id}]
希望這有幫助:)
更新:更詳細(xì)的說(shuō)明
第二個(gè)參數(shù)Id是數(shù)據(jù)庫(kù)字段名稱(chēng)。第三個(gè)是從表單傳遞的Id。為此,在編輯表單中添加一個(gè)隱藏字段,然后設(shè)置其 name = Id
及其 value=$data['Id']
。其中 $data['Id']
是從數(shù)據(jù)庫(kù)獲取并傳遞到視圖的行的 Id。因此,當(dāng)提交表單時(shí),Id 將在 $_POST
中提交。然后將其傳遞給規(guī)則參數(shù):
{Id}
希望這有幫助:(