Где я должен хранить этот код в Laravel?

Используя Laravel для разработки веб-приложения, я сталкиваюсь с неясностью, где разместить код.

У меня есть пользовательская модель, которая получает свои данные из другой базы данных. Я могу читать только в этой базе данных, но это нормально. Поля, такие как имя, город и т. Д., Очень непоследовательно хранятся в базе данных. Например, иногда имя полностью пишется с заглавной буквы, а иногда — нет. Итак, я создал метод formatAsName который в настоящее время проживает в моем UserController,

Но дело в том, что каждый раз, когда пользовательский объект извлекается из базы данных, я хотел бы использовать этот метод для некоторых столбцов (например, имя и город). Должен ли этот код храниться в контроллере или он принадлежит модели?

Побочный вопрос: есть ли способ сказать Laravel выполнить обратный вызов при выполнении запроса для этой модели? В противном случае я должен вручную написать некоторые из основных Model-методов. Это не проблема, так как взаимодействие ограничено (только поиск), но если оно поддерживается, это будет лучшим способом.

Спасибо за ваше время.

-1

Решение

Вы можете также определить свой метод в модели и есть много методов в Laravel,
Вы можете найти больше помощи здесь для вашего руководства по коду: — ВОТ

1

Другие решения

Я знаю, что вы уже получили свой ответ, но я все еще хочу дать вам совет.

Хорошим подходом для этого случая является использование шаблона репозитория. Делая это, вы можете создавать Presenters и Transformers для вашей модели и определять, как вы хотите, чтобы ваши модели были получены

    public function transform(User $model)
{
return [
'name'         => strtolower($model->name),
'city'         => strtolower($model->city),
'created_at'    => Carbon::parse($model->created_at)->format('d-m-Y'),
'updated_at'    => Carbon::parse($model->updated_at)->format('d-m-Y'),
];
}

Извините, но у меня нет источника / материала для отправки вам об этом шаблоне, но вы наверняка найдете его в Google. Вы можете проверить мой github, если хотите, и посмотреть на этот репозиторий, на котором есть пример https://github.com/cbcaio/base-laravel

1

По вопросам рекламы [email protected]