Yêu cầu thg 10 29, 2019 8:39 SA 1206 0 3
  • 1206 0 3
+5

Check unique in laravel

Chia sẻ
  • 1206 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 thg 10 29, 2019 8:45 SA
Đã đượ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
thg 10 29, 2019 8:58 SA

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

thg 10 29, 2019 10:15 SA

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

Avatar TinhTN @tinhtn89
thg 10 30, 2019 1:55 SA

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

Đã trả lời thg 10 29, 2019 8:41 SA
+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ẻ
thg 10 29, 2019 8:44 SA

@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
thg 10 29, 2019 8:57 SA

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
thg 10 29, 2019 9:26 SA

@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
thg 10 29, 2019 9:30 SA

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
thg 10 29, 2019 9:32 SA

@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
thg 10 29, 2019 9:32 SA
Avatar Bùi Hiếu @buihieubthc2rb
thg 10 29, 2019 9:32 SA
Avatar Lê Xuân Trường @motcaitenit38
thg 10 31, 2019 2:17 SA

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 thg 10 29, 2019 8:43 SA
+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í