#php #arrays #laravel #model #attributes
#php #массивы #laravel #Модель #атрибуты
Вопрос:
Я пытаюсь получить доступ к атрибутам модели с помощью массива ключей. Желаемая функциональность будет работать примерно так $model->getAttribute('name')
, но принимать массив вместо строки.
Допустим, у нас была модель с именем атрибутов ‘A’, возрастом 2 и blood_type ‘B’.
$attributesToPull = ['name', 'age'];
$model->getAttributes($attributesToPull);
// returns ['A', 2]
Я проверил документы Laravel и не могу найти ничего подходящего.
Результаты не обязательно должны поступать прямо из модели, их можно перенести в их собственный ассоциативный массив, используя $model->getAttributes()
, а затем использовать встроенную функцию PHP array, например, array_intersect
для фильтрации результатов, но даже тогда я не могу найти функцию, которая позволит мне фильтровать ассоциативный массив с помощью индексированного массива.
Кто-нибудь знает, как я мог бы это сделать, в идеале без использования цикла или обратного вызова? Ответ может быть довольно открытым, он может возвращать коллекцию или массив и использовать либо ассоциативный массив атрибутов модели, либо вызывать функцию для самой модели.
Ответ №1:
Модель имеет only
метод:
$model->only($attributesToPull);
Комментарии:
1. боже мой, я знал, что там что-то есть! ха-ха. Я использовал эту функцию раньше и совершенно забыл об этом, я искал в документах ключи или атрибуты. Я надеюсь, что будущие работодатели этого не увидят!