samedi 3 novembre 2018

Laravel ignore unique validation on update

I have a Model which contains many foreign keys. One of those foreign keys must be a unique value.

My validation rules are the following ones:

$data['rules'] = [
    'address' => 'required|string',
    'buyer_id' => 'required|exists:buyers,id',
    'buyer_name' => 'required|string',
    'date' => 'required|date',
    'email' => 'required|email',
    'identification_photo' => 'required|string',
    'invoice' => 'string|required',
    'middleman_id' => 'nullable|exists:middlemen,id',
    'price' => 'required|numeric|between:1,99999999999999999999999999.9999',
    'property_id' => 'required|exists:properties,id|unique:reservations,property_id',
    'purchase_receipt' => 'required|string',
    'rfc' => array(
        'required',
        'regex:/^([A-Z,Ñ,&]{3,4}([0-9]{2})(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1])[A-Z|\d]{3})$/'
    ),
    'tier_id' => 'nullable|exists:tiers,id',
    'user_id' => 'required|exists:users,id',
];

The one that I have trouble is property_id. This must be unique in the current table which is reservations.

In order to ignore that validation when I make an update, I'm adding this line of code before calling the Validator: $book['rules']['property_id'] .= ",{$item->property_id}";

And when I do a Log::info of all my rules, I got the following line: 'property_id' => 'required|exists:properties,id|unique:reservations,property_id,4',

But I keep receiving the error. Am I doing something wrong?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire