Прошу помочь с оптимизацией. Например, у меня есть контроллеры ProductsController и CategoryController
В обоих есть метод create оба например делают: $category = Category::create(['title' => $request->title); return view('admin.categories.index', compact('categories'); и
Согласен полностью. Но иногда так не хочется повторять одно и то же) Хочется написать и применять в каждом контроллере одну строчку)
Создай базовый контроллер с методом create. Остальные свои контроллеры унаследуй от этого. И в каждом контроллере в методе create вызывай в начале parent:: create ($model, $request)
Создай базовый контроллер с методом create. Остальные свои контроллеры унаследуй от этого. И в каждом контроллере в методе create вызывай в начале parent:: create ($model, $request)
Но интерфейс в данном случае будет сломанным. Ибо передать то туда мы можем любую модель, но не с любой моделью можно будет проделать конкретный набор действий.
Создай базовый контроллер с методом create. Остальные свои контроллеры унаследуй от этого. И в каждом контроллере в методе create вызывай в начале parent:: create ($model, $request)
А куда девать наследование его от базового контроллера?
Создай базовый контроллер с методом create. Остальные свои контроллеры унаследуй от этого. И в каждом контроллере в методе create вызывай в начале parent:: create ($model, $request)
А потом кому-то не нужен будет метод create. В итоге получим кашу.
На текущем этапе да. о у меня имеются и другие контроллеры с тем же алгоритмом
Ну и сделай сервис загрузки картинок, если там действительно какая-то логика а-ля создание миниатюр и т.д. А так - просто создание модели явно слишком простая штука, чтобы городить ещё один слой абстракции
Таки по красоте если выносить какие-то действия контролера в абстракцию, то можно заодно обмазаться паттерном "шаблонный метод", чтобы допустить расширение