Laravel проверка для уникального значения - PullRequest
0 голосов
/ 20 января 2020

У меня есть несколько клиентов, и у каждого клиента может быть список имен (customer_name), который может быть «aka» или «предыдущий», и для каждого типа значение должно быть уникальным. Сообщение: «Вызов функции-члена pluck () для массива»

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);
    }

}

1 Ответ

1 голос
/ 20 января 2020

Ваша ошибка в том, что внутри $request->customer_names вы получаете массив.

->pluck() для коллекций.

Так что вы можете изменить:

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

с помощью

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

Подробнее о Arr::pluck() вы можете найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...