Yêu cầu thg 12 5, 2019 8:13 SA 124 0 4
  • 124 0 4
0

Hỏi Về sữ dụng vallidate trong laravel.

Chia sẻ
  • 124 0 4

khi mình sữ dụng unique để thêm dữ liệu thông báo lỗi đã tồn tại. Nhưng giả sữ mình update bảng ví dụ như: bảng Sản phẩm trong đó có Tên sản phẩm, giá tiền,số lượng trong khi đó Tên sản phẩm mình đã unique cho nó là duy nhất. mình chỉ update giá tiền thì làm thế nào. các cao nhân cho em gợi ý cách làm với ạ. thank for watching

4 CÂU TRẢ LỜI


Đã trả lời thg 12 5, 2019 8:19 SA
+8

Bạn vẫn dùng unique rule nhưng thay vì dùng mặc định là:

'name' => "unique:products,name,$productId,id"

Thì nó sẽ vẫn áp dụng rule unique nhưng sẽ bỏ qua sản phẩm có id là $productId nhé bạn

Chia sẻ
Đã trả lời thg 12 6, 2019 4:21 SA
+1

Theo mình thì cách đơn giản nhất là bạn sẽ làm 2 file validate khi tạo và khi update riêng, như thế thì sẽ có thể chính xác hơn nếu bạn cần validate nhiều trường và có nhiều trường hợp xảy ra.

và để except 1 bản ghi nào đó thì bạn thử cái này nhé https://laravel.com/docs/6.x/validation#rule-unique

use Illuminate\Validation\Rule;

Validator::make($data, [
    'email' => [
        'required',
        Rule::unique('users')->ignore($user->id),
    ],
]);
Chia sẻ
Đã trả lời thg 12 6, 2019 4:24 SA
0

Bạn có thể làm theo như sao:

$id = $this->route('product')->id;

return [
    'name' => "unique:products,name,$id,id",
];
Chia sẻ
Avatar Hồ Thanh Minh @mazxc11347
thg 12 15, 2019 3:15 CH

Cảm ơn bạn.

Đã trả lời thg 12 6, 2019 9:17 SA
0

*sử dụng, *giả sử nhé 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í