переопределение контроллера формы moonshine laravel
MoonShine\Controllers\FormControllerphp artisan make:controller MyCustomFormControllerMoonShine\Controllers\FormController<?php
namespace App\Http\Controllers;
use MoonShine\Controllers\FormController as MoonShineFormController; // Импортируйте стандартный контроллер
class MyCustomFormController extends MoonShineFormController
{
// Здесь вы можете переопределить методы, например, post(), delete() или другие.
// Пример переопределения метода post():// public function post(Request $request)
// {
// // Ваша кастомная логика
// // ...
// // Вызовите родительский метод post(), если вам нужно использовать его функционал
// // return parent::post($request);
// }
}config/moonshine.phpcontrollerform// config/moonshine.php
'controller' => [
// ... другие контроллеры
'form' => \App\Http\Controllers\MyCustomFormController::class, // Укажите ваш контроллер
// ...
],MyCustomFormControllerpost()delete()post()use Illuminate\Http\Request;
use Illuminate\Support\Collection;
// ...
public function post(Request $request): \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
{
// Ваша кастомная логика перед сохранением
// Например, валидация, изменение данных и т.д.// Вызов родительского метода для стандартного сохранения
$response = parent::post($request);
// Ваша кастомная логика после сохранения
// Например, отправка уведомлений, создание связанных записей и т.д.
return $response;
}delete()use Illuminate\Http\Request;
// ...
public function delete(Request $request): \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
{
// Ваша кастомная логика перед удалением
// ...// Вызов родительского метода для стандартного удаления
$response = parent::delete($request);
// Ваша кастомная логика после удаления
// ...
return $response;
}MoonShine\Controllers\FormControllerconfig/moonshine.phpMoonShine\Controllers\FormControllerparent::method()parent::method($request)Привет! Рад помочь с переопределением контроллера формы в Moonshine для Laravel.
Moonshine, как и многие другие фреймворки, позволяет кастомизировать поведение стандартных компонентов. Чтобы переопределить контроллер формы, вам понадобится выполнить следующие шаги:
MoonShine\Controllers\FormControllerphp artisan make:controller MyCustomFormControllerMoonShine\Controllers\FormController<?php
namespace App\Http\Controllers;
use MoonShine\Controllers\FormController as MoonShineFormController; // Импортируйте стандартный контроллер
class MyCustomFormController extends MoonShineFormController
{
// Здесь вы можете переопределить методы, например, post(), delete() или другие.
// Пример переопределения метода post():// public function post(Request $request)
// {
// // Ваша кастомная логика
// // ...
// // Вызовите родительский метод post(), если вам нужно использовать его функционал
// // return parent::post($request);
// }
}config/moonshine.phpcontrollerform// config/moonshine.php
'controller' => [
// ... другие контроллеры
'form' => \App\Http\Controllers\MyCustomFormController::class, // Укажите ваш контроллер
// ...
],MyCustomFormControllerpost()delete()post()use Illuminate\Http\Request;
use Illuminate\Support\Collection;
// ...
public function post(Request $request): \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
{
// Ваша кастомная логика перед сохранением
// Например, валидация, изменение данных и т.д.// Вызов родительского метода для стандартного сохранения
$response = parent::post($request);
// Ваша кастомная логика после сохранения
// Например, отправка уведомлений, создание связанных записей и т.д.
return $response;
}delete()use Illuminate\Http\Request;
// ...
public function delete(Request $request): \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
{
// Ваша кастомная логика перед удалением
// ...// Вызов родительского метода для стандартного удаления
$response = parent::delete($request);
// Ваша кастомная логика после удаления
// ...
return $response;
}MoonShine\Controllers\FormControllerconfig/moonshine.phpMoonShine\Controllers\FormControllerparent::method()parent::method($request)