Мутаторы и аксессоры Laravel - PullRequest
0 голосов
/ 07 октября 2018

Я создал функцию даты мутатора в модели, чтобы преобразовать дату созданного в человеческое время, используя diffForHumans () .Я сделал следующее

public function setDateAttribute($value){
    return \Carbon\Carbon::parse($value)->diffForHumans();
}

Работает нормально, но влияет на все.этот мутатор можно применять только к указанной функции контроллера, а не ко всей функции

1 Ответ

0 голосов
/ 08 октября 2018

Небольшая логика в мутаторе сделает эту работу: -

    public function setDateAttribute($value){
       if ( request()->path() === "/yourURL/To/IndexMethod"){ 
         return $this->attributes['date'] = \Carbon\Carbon::parse($value)->diffForHumans();
       } else {
         return $this->attributes['date'] = $value;
       }
    }

идея состоит в том, чтобы проверить по URL.

получение помощника пути запроса

РЕДАКТИРОВАТЬ

Сравнение с использованием имени маршрута лучше, поскольку точный путь может содержать id / slugs.

public function setDateAttribute($value){
       if ( \Route::currentRouteName() === "/yourRouteName/To/IndexMethod"){ 
         return $this->attributes['date'] = \Carbon\Carbon::parse($value)->diffForHumans();
       } else {
         return $this->attributes['date'] = $value;
       }
    }

получение имени маршрута

...