+1
Hỏi về Validation unique laravel khi update bài viết ạ
Chào mọi người ạ, em đang gặp 1 vấn đề là khi edit 1 post, thi validation của em có check unique title trong database và khi em không thay đổi gì title vẫn để title cũ mà update là nó báo đã tồn tại. Cho em hỏi lỗi này fix ntn ạ? Em viết validation trong thư mục Request riêng ạ. Mong mọi người giúp đỡ
5 CÂU TRẢ LỜI
+5
Bạn vẫn dùng unique
rule như này nhé:
'title' => "unique:posts,title,$postId,id"
Thì nó sẽ vẫn áp dụng rule unique
nhưng sẽ bỏ qua bài viết có id là $postId
nhé bạn
+3
bạn có thể dùng cách này
public function rules()
{
$id = $this->route('post')->id; // lấy id bài post muốn update
return [
'title' => "unique:posts,title,{$id},id"
]
}
+2
use Illuminate\Validation\Rule;
Validator::make($data, [ 'posts' => [ 'required', Rule::unique('posts')->ignore($postId), ], ]);
Bạn thử dùng hàm ignore() xam sao chi tiết bạn có thể tham khảo: https://laravel.com/docs/6.x/validation#rule-unique
0
Bạn làm như này nhé:
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$id = $this->route('certificate')->id;
return [
'title' =>"unique:potsts,title,$id,id",
];
}
bạn show code phần update được k ạ?