Symfony 4.1, администратор сонаты не будет переопределен - PullRequest
0 голосов
/ 04 июля 2018

Я хотел переопределить метод editAction администратора Sonata. Я создал класс администратора и расширил его из Sonata \ AdminBundle \ Controller \ CRUDController затем я написал editAction с моим личным редактированием, но когда я получаю доступ к странице редактирования сообщения, вызывается старая editAction Sonata, а не моя функция! вот мой админ класс:

    <?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");
    }

}

1 Ответ

0 голосов
/ 04 июля 2018

Я считаю, что вы забыли зарегистрировать акцию. Вы можете сделать это: Либо с помощью 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

Подробнее об этом можно прочитать здесь

...