Аксессоры отлично выполняют свою работу по одному атрибуту, но мне нужен способ иметь метод для работы с Accessor/Getter по всем атрибутам и автоматически.Измените все атрибуты модели Laravel
Целью является то, что я хочу заменить некоторые символы/цифры на получение атрибутов, а затем распечатать их. Я могу сделать это изнутри контроллера и вручную, но я думаю, было бы здорово иметь его со стороны модели и автоматически.
Как переопределение getAttributes()
метод:
public function getAttributes()
{
foreach ($this->attributes as $key => $value) {
$this->attributes[$key] = str_replace([...], [...], $value);
}
return $this->attributes;
}
Но я должен назвать это каждый раз, когда на модели $model->getAttributes();
Любой способ сделать это автоматически и DRY?
Как насчет переопределение конструктора и использовать родительский :: __ конструкт()? Или добавьте конструкцию использования модели расширения класса, и пусть модели расширяют этот новый класс, поэтому он применяется ко всем. –
@TimvanUum На самом деле я сделал это, но я думаю, что должно быть что-то не так, поскольку это вообще не повлияло на результаты! – revo
Странный просто попробовал сам, и действительно, он не работает. Даже при вызове метода заполнения снова. –