我在專案中有User和Post模型。我想使slug列Post具有唯一性,但在更新post. https://laravel.com/docs/5.2/validation#rule-unique我從其中一個答案中找到了這個 URL 。
我從上面的 URL 中找到了一個解決方案,'slug' => 'unique:posts,slug,'.auth()->id().',user_id'但這并不是我想要的。這使得該列不僅對于具有提供的 id 的一個用戶是唯一的。
就我而言,我希望所有管理員用戶都能夠編輯編輯或作者的帖子,而無需隨時更改slug。
update 方法中的驗證碼。
$request->validate([
'title' => 'required|string|max:255',
'slug' => 'required|string|max:255|unique:posts,slug,'.auth()->id().',user_id',
'featured_img' => 'nullable|max:1024|mimes:png,jpg,jpeg',
'excerpt' => 'nullable|string|max:225',
'body' => 'nullable',
]);
uj5u.com熱心網友回復:
在為 指定條件時使用Post而非 a 。Userunique
// include a use statement for Rule
use Illuminate\Validation\Rule;
'slug' => [
'required',
'string',
'max:255',
Rule::unique('posts')->ignore($post->id)
]
$post以上是$post您在函式update中使用的物件。
以上顯然沒有將規則范圍限定為 just admins,但您通常具有用于admin相關功能的單獨路由/控制器。或者,您可以有條件地包含該規則。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/517412.html
標籤:php拉拉维尔
上一篇:急切加載如何為關系作業?
