Я хотел переопределить метод editAction в Sonata Admin. Я создал класс администратора и расширил его из Sonata \ AdminBundle \ Controller \ CRUDController затем я написал editAction с моим личным редактированием, но когда я открываю страницу редактирования сообщения, вызывается старая Sonata editAction, а не моя функция! вот мой класс администратора:
<?php
namespace App\Controller;
use Sonata\AdminBundle\Controller\CRUDController as Controller;
use Symfony\Component\HttpFoundation\RedirectResponse;
use App\Manager\SiteManagerInterface;
use App\Manager\UserManagerInterface;
use App\Entity\Site;
use App\Entity\Profile;
use App\Entity\User;
use App\Entity\Payment;
use Symfony\Component\HttpFoundation\Response;
class UserAdminCRUDController extends Controller
{
/** @var SiteManagerInterface $siteManager */
private $siteManager;
public function editAction($id = null)
{
return new Response("test");
}
}






Я считаю, что вы забыли зарегистрировать сервис акции. Вы можете сделать это: Либо с помощью XML:
<!-- src/Resources/config/admin.xml -->
<service id = "app.admin.car" class = "App\Admin\CarAdmin">
<tag name = "sonata.admin" manager_type = "orm" group = "Demo" label = "Car" />
<argument />
<argument>App\Entity\Car</argument>
<argument>App\Controller\CRUDController</argument>
</service>
или в yml
# src/Resources/config/admin.yml
services:
app.admin.car:
class: App\Admin\CarAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: Demo, label: Car }
arguments:
- null
- App\Entity\Car
- App\Controller\CRUDController
public: true
Подробнее об этом можно прочитать здесь
Я уже зарегистрировал службу действий, посмотрите
admin.user: class: App\Admin\UserAdmin arguments: - null - App\Entity\User - App\Controller\UserAdminCRUDController tags: - { name: sonata.admin, manager_type: orm, label: User } public: true calls: - [init, ['@fos_user.user_manager', '@App\Manager\ProfileManagerInterface']]Или шоудл тоже добавить службу для поста?