Asked Oct 29th, 2019 8:39 AM 157 0 3
  • 157 0 3
+5

Check unique in laravel

Share
  • 157 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 ANSWERS


Answered Oct 29th, 2019 8:45 AM
Accepted
0

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

Share
TinhTN @tinhtn89
Oct 29th, 2019 8:58 AM

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

0
| Reply
Share
Oct 29th, 2019 10:15 AM

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

0
| Reply
Share
TinhTN @tinhtn89
Oct 30th, 2019 1:55 AM

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

0
| Reply
Share
Answered Oct 29th, 2019 8:41 AM
+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

Share
Oct 29th, 2019 8:44 AM

@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'],
+1
| Reply
Share
TinhTN @tinhtn89
Oct 29th, 2019 8:57 AM

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

0
| Reply
Share
Bùi Hiếu @buihieubthc2rb
Oct 29th, 2019 9:26 AM

@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ỉ?

0
| Reply
Share
TinhTN @tinhtn89
Oct 29th, 2019 9:30 AM

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ả. 😦

0
| Reply
Share
Bùi Hiếu @buihieubthc2rb
Oct 29th, 2019 9:32 AM

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

'phone'=>'nullable',
0
| Reply
Share
Bùi Hiếu @buihieubthc2rb
Oct 29th, 2019 9:32 AM
Bùi Hiếu @buihieubthc2rb
Oct 29th, 2019 9:32 AM
Lê Xuân Trường @motcaitenit38
Oct 31st, 2019 2:17 AM

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

0
| Reply
Share
Answered Oct 29th, 2019 8:43 AM
+1

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

Share