我想限制所需的:我的Laravel 5.2應用程序中的唯一驗證程序,以檢查我的'slug'列的唯一性,僅針對特定user_id的表結果。換句話說,子彈確實需要是獨一無二的,但僅限於每個用戶。我已經爲store()函數使用了以下代碼:Laravel 5.2 Validator:限制對特定用戶的唯一字段檢查
'slug' => 'required|unique:contents,slug,NULL,id,user_id,' . Auth::id()
工作得很好。但是,我無法使update()函數的工作原理相同,因爲我無法讓驗證程序停止檢查當前正在更新的條目的結果。目前我正在使用的代碼是:
'slug' => 'required|unique:contents,slug,' . $content->slug . ',id,user_id,' . Auth::id()
代碼不正確的看向我,但我試過幾個變種和他們沒有工作,我怎麼想。在我看來,我會認爲這會奏效:
'slug' => 'required|unique:contents,id,' . $content->id . ',user_id,' . Auth::id()
但它沒有。有人知道我的問題在這裏嗎?任何指導將不勝感激。
在代碼的第二位,你知道,你有'$內容 - > slug',而不是'$內容 - > id'?除了那個小錯誤之外,我希望第二個代碼可以工作 – Jonathon
是的,我認爲第二行看起來不錯,第三行是'slug'=>'required | unique:contents,id' 。 $ content-> id。 ',id,user_id'。 Auth :: id()是我期望能夠工作的,但它沒有。它允許我將slug更新爲該用戶已有的一個。 – Boone
最後一行代碼缺少',id',也許這就是爲什麼它不起作用。試試:''required | unique:contents,id,'。 $ content-> id。 ',id,user_id'。 Auth :: id()' – Jonathon