@inververs

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

К примеру, мне нужен список пользователей.
В одном случае этот список мне нужен в виде массива [id] => name
В другом, мне нужно к этому списку в начале добавить пустой элемент (для select)
В третьем, нужен список с дополнительным условием, скажем все пользователи с флагом enable = 1
итп.
Как правильно таки вещи делать?
Сделать 4 разные функции? Сделать 1 функцию, но через параметр передать какой нибудь флаг и в функции через case возвращать нужный набор?
Спасибо.
  • Вопрос задан
  • 2287 просмотров
Пригласить эксперта
Ответы на вопрос 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'
)

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽