Я ищу простой способ изменить/стандартизировать ключи, которые возвращаются из Eloquent. На данный момент мое приложение и база данных довольно старые. Я создаю новый набор API для взаимодействия с данными, но изменение базы данных просто не является вариантом. В качестве альтернативы я просто хотел бы сопоставить имена полей в моих выбранных запросах.Laravel Eloquent key mapping
Возьмите данный ответ, как это в настоящее время возвращается:
[
'companyrecordid': 1234,
'clientid': 2345,
'name': 'Some cool company',
'street_address': '1234 N. Nowhere'
]
Желаемый результат будет:
[
'id': 1234,
'clientId': 2345,
'name': 'Some cool company',
'streetAddress': '1234 N. Nowhere'
]
В идеальном мире, было бы удивительно, если бы это было так просто, как добавление переменная к моей модели ... что-то вроде:
protected static $keymap = [
'companyrecordid' => 'id',
'clientid' => 'clientId',
'street_address' => 'streetAddress',
];
Если ничего не существует, не возражайте писать сам, я просто не хочу изобретать колесо, если нет причин для этого.
Fractal! http://fractal.thephpleague.com/ –
Я нашел или, скорее, был направлен на фрактал, теперь я играю с ним. Это кажется довольно тяжелым для чего-то, что должно быть, теоретически, простым. Pre-laravel, я бы просто сделал что-то вроде: «SELECT companyrecordid как id, clientid as clientId ...» – jacobfogg
Ну, нет ничего, что помешало бы вам указывать псевдонимы в предложении redoquent select, если это то, что вы предпочитаете. –