Мутаторы и аксессоры Laravel

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

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

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

1 ответ

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

    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;
       }
    }

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

Другие вопросы по тегам