Beusebiu
Beusebiu

Reputation: 1513

Laravel validation for uniques value

I have multiple customers ,and each customers can have a list of names (customers_name) that can be "aka" or "previous" and for each type value must be unique. Message: "Call to a member function pluck() on array"

enter image description here

$customerPrevious = [];
if($customer_name['name_type'] == 'previous'){
    //  previous customer_names from server
    $customerPrevious = $customer->customerNames()->where('name_type', '=', 'previous')->pluck('name')->toArray();
    //  previous customer_names from request
    $customerPreviousRequest = $request->customer_names->where('name_type', '=', 'previous')->pluck('name')->toArray(); 
    $duplicateValue = array_diff($customerPrevious,$customerPreviousRequest);

    if($duplicateValue.length){
            return response($exception->getMessage(), 404);
    }

}

Upvotes: 0

Views: 117

Answers (1)

mare96
mare96

Reputation: 3859

Your error is because inside $request->customer_names you get array.

->pluck() is for collections.

So you can change:

$request->customer_names->pluck('name')

with

Arr::pluck($request->customer_names, 'name')

More about Arr::pluck() you can find here.

Upvotes: 1

Related Questions