Yêu cầu Oct 29th, 2019 8:39 a.m. 1183 0 3
  • 1183 0 3
+5

Check unique in laravel

Chia sẻ
  • 1183 0 3

Mình đang edit dữ liệu và trong controller có validate dữ liệu như sau:

$this->validate($r,[
            'phone'=>'unique:daily,phone,'.$r['id'],  //  unique:tintuc,title - Không cho phép trùng tên //
           ],[
            'phone.unique'=>'Số điện thoại này đã được sử dụng', 
        ]); 

Dữ liệu phone ko bắt buộc nhập vì thế sẽ có rất nhiều người ko có phone nên khi validate mình ko nhập phone nó sẽ áo lỗi ( số đt này đã đc sử dụng) nó báo lỗi này là đúng logic nhưng lại không đáp ứng yêu cầu . Vậy cho mình hỏi có cash nào giải quyết vấn đề này ? Thanks!

3 CÂU TRẢ LỜI


Đã trả lời Oct 29th, 2019 8:45 a.m.
Đã được chấp nhận
0

bạn thêm nullable vào là sẽ không bị require nữa

Chia sẻ
Avatar TinhTN @tinhtn89
Oct 29th, 2019 8:58 a.m.

Thêm vào đâu bạn nhỉ, nói rõ hơn được không.

Oct 29th, 2019 10:15 a.m.

@tinhtn89 'phone' => 'nullable|unique:.......' xem sao

Avatar TinhTN @tinhtn89
Oct 30th, 2019 1:55 a.m.

Thank You, Nullable đã hoạt động tốt. 😃

Đã trả lời Oct 29th, 2019 8:41 a.m.
+10

Mình nghĩ là trường hợp của bạn có thể dùng rule sometimes như sau:

Validating When Present In some situations, you may wish to run validation checks against a field only if that field is present in the input array. To quickly accomplish this, add the sometimes rule to your rule list:

$v = Validator::make($data, [
    'email' => 'sometimes|required|email',
]);

In the example above, the email field will only be validated if it is present in the $data array.

Laravel docs: https://laravel.com/docs/6.x/validation#conditionally-adding-rules

Chia sẻ
Oct 29th, 2019 8:44 a.m.

@tinhtn89 Như bạn @buihieubthc2rb là ổn đấy bạn, để sometimes thì Laravel sẽ không validate khi người dùng submit phone rỗng. Nên bạn sửa thành như này nhé:

'phone'=>'sometimes|unique:daily,phone,'.$r['id'],
Avatar TinhTN @tinhtn89
Oct 29th, 2019 8:57 a.m.

Thêm Sometimes vào vẫn báo lỗi đã tồn tại. 1.GIF 2.GIF

Avatar Bùi Hiếu @buihieubthc2rb
Oct 29th, 2019 9:26 a.m.

@tinhtn89 lỗi đang báo vs trường sotaikhoan

cái này cũng muốn như trường phone à bạn?

à trường phone đã pass chưa bạn nhỉ?

Avatar TinhTN @tinhtn89
Oct 29th, 2019 9:30 a.m.

Phone là mình ví dụ thôi, còn chính thức nó là thằng sotaikhoan này này. chưa pass thằng nào cả. 😦

Avatar Bùi Hiếu @buihieubthc2rb
Oct 29th, 2019 9:32 a.m.

@tinhtn89 bạn thử để thành nullable như các bạn ở dưới xem như nào:

'phone'=>'nullable',
Avatar Bùi Hiếu @buihieubthc2rb
Oct 29th, 2019 9:32 a.m.
Avatar Bùi Hiếu @buihieubthc2rb
Oct 29th, 2019 9:32 a.m.
Avatar Lê Xuân Trường @motcaitenit38
Oct 31st, 2019 2:17 a.m.

Thằng sometimes nó chỉ check khi mình có bắn cái name của field đấy lên hay không thôi, nếu bắn lên thì nó sẽ check, còn k bắn nó k check

Đã trả lời Oct 29th, 2019 8:43 a.m.
+1

Thử thêm nullable xem sao bạn ?

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí