Мутаторы и аксессоры 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;
}
}