2016-03-08 2 views
0

У меня есть модель Entry, которая имеет отношения «многие ко многим» с моделью Product. Это отношение имеет сводную таблицу (entry_product) с атрибутом valid_to.Laravel формат даты сводная таблица

К базе данных этот атрибут valid_to - это метка времени, это нормально. Но я хотел бы отформатировать его, прежде чем принимать его как ответ JSON.

Функция отвечает за отношения заключается в следующем:

public function products() { 
     return $this->belongsToMany('Product', 'entry_products')->withPivot(['quantity', 'price', 'valid_to']); 
    } 

Должен ли я создать новую модель, чтобы поддержать эту операцию? Есть ли способ отформатировать все эти даты, не перебирая полученные данные, прежде чем отправлять их как ответ JSON?

ответ

0

Возможно, вы должны использовать презентатор модели. Модельные докладчики представляют данные модели в желаемом формате, который мы укажем.

  1. Я рекомендую использовать laravel-auto-presenter. Документация не требует пояснений. Пройдите через него, и если вы столкнетесь с какими-либо трудностями, отправьте его здесь.

    К счастью, в примере, приведенном в документации, используется метка времени.

  2. Вы можете использовать Laravel5-json пакет, если хотите отправить ответ напрямую.

  3. Вы можете переопределить метод toJson, чтобы вернуть модель по вашему желанию. Он намного более независим от внешних пакетов и чистых.

Смежные вопросы