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"
$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);
}
}
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.