@inververs

Как правильно получать похожие данные?

К примеру, мне нужен список пользователей.
В одном случае этот список мне нужен в виде массива [id] => name
В другом, мне нужно к этому списку в начале добавить пустой элемент (для select)
В третьем, нужен список с дополнительным условием, скажем все пользователи с флагом enable = 1
итп.
Как правильно таки вещи делать?
Сделать 4 разные функции? Сделать 1 функцию, но через параметр передать какой нибудь флаг и в функции через case возвращать нужный набор?
Спасибо.
  • Вопрос задан
  • 2288 просмотров
Пригласить эксперта
Ответы на вопрос 1
nazarpc
@nazarpc
Open Source enthusiast
К примеру, мне нужен список пользователей.

GET api/users?field=name
В другом, мне нужно к этому списку в начале добавить пустой элемент (для select)

Это вообще к получению данных не относится, то как вы используете данные не имеет отношения к API.
В третьем, нужен список с дополнительным условием, скажем все пользователи с флагом enable = 1
итп.

GET api/users?field=name&enable=1

Если вы говорите о внутреннем API - то же самое в целом:
array_column(
    $Users->get(
        $Users->search()
    ),
    'name',
    'id'
)

array_column(
    $Users->get(
       $Users->search(['enabled' => 1])
    ),
    'name',
    'id'
)

Если параметров может быть небольшое количество - можно просто завести на каждый параметр отдельный аргумент, если данных много - фильтр того, какие колонки возвращать тоже можно вынести в отдельный аргумент, но это уже нужно знать что у вас как устроено и какие масштабы.
Главное делайте операции атомарными, потом можно будет скомпоновать как нужно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы