Повторите Мутаторы - PullRequest
       51

Повторите Мутаторы

1 голос
/ 13 февраля 2020

Я использую несколько мутаторов, которые в основном одинаковы на разных моделях и в одних и тех же моделях, для разных областей. Например: до даты:

    public function getStartShortDateAttribute()
    {
        return $this->start_time->format('d-m-y');
    }

Существует ли стандартный способ повторного использования одного и того же мутатора для нескольких полей в разных моделях?

1 Ответ

4 голосов
/ 13 февраля 2020

Используйте черты, которые являются способом повторного использования кода в классах.

trait HasStartTimes {
    public function getStartShortDateAttribute()
    {
        return $this->start_time->format('d-m-y');
    }
}

Теперь вы можете использовать эту черту в вашем классе, и функции будут включены. Это конструктивный подход, который уже используется в Laravel, , см. AuthenticatesUsers .

class YourModel {
    use HasStartTimes;
}
...