EasyAdmin - Admin Controller зависит от несуществующего сервиса - PullRequest
0 голосов
/ 07 апреля 2020

В моем проекте Symfny 5 возникла ошибка исключения, из-за которой я не могу понять, откуда это происходит. Итак, я установил пакет "easycorp/easyadmin-bundle": "^2.3" и получаю сообщение об ошибке:

Служба "ProjectBundle \ Admin \ Controller \ AdminController" зависит от несуществующей службы "EasyCorp \" Bundle \ EasyAdminBundle \ Search \ Autocomplete ".

Я определил свой EasyAdminController, который был изменен из Admin Controller в недавнем обновлении в easy_admin.yaml файл.

Я не уверен насчет содержимого в AdminController. Не можете понять, нужно ли это изменить?

<?php

namespace ProjectBundle\Admin\Controller;

use EasyCorp\Bundle\EasyAdminBundle\Controller\EasyAdminController as BaseAdminController;
use Symfony\Component\HttpFoundation\Response;
use ProjectBundle\Admin\Controller\Traits\GeneralFieldAdjustmentsTrait;
use ProjectBundle\Admin\Controller\Traits\UploadFieldsTrait;

class AdminController extends BaseAdminController
{
    use GeneralFieldAdjustmentsTrait;
    use UploadFieldsTrait;

var $additionalViewVars = [];

public function prePersistEntity($entity)
{

}


protected function render(string $view, array $parameters = [], Response $response = null): Response
{
    if(!empty($this->additionalViewVars)) {
        $parameters = array_merge($parameters, $this->additionalViewVars);
    }

    return parent::render($view, $parameters, $response);
}

/**
 * Get current entity
 *
 * @return mixed
 */
protected function getCurrentEntity()
{
    $easyadmin = $this->request->attributes->get('easyadmin');
    return $easyadmin['item'];
}

/**
 * Check if action is create or update
 *
 * @return bool
 */
protected function isCreateUpdate()
{
    return in_array(
        $this->request->query->get('action'),
        ['new', 'edit']
    );
}
}

А в моем EasyAdminController как надо:

namespace EasyCorp\Bundle\EasyAdminBundle\Controller;

use EasyCorp\Bundle\EasyAdminBundle\Configuration\ConfigManager;
use EasyCorp\Bundle\EasyAdminBundle\Form\Filter\FilterRegistry;
use EasyCorp\Bundle\EasyAdminBundle\Search\Autocomplete;
use EasyCorp\Bundle\EasyAdminBundle\Search\Paginator;
use EasyCorp\Bundle\EasyAdminBundle\Search\QueryBuilder;
use EasyCorp\Bundle\EasyAdminBundle\Security\AuthorizationChecker;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\PropertyAccess\PropertyAccessorInterface;

/**
 * The controller used to render all the default EasyAdmin actions.
 *
 * @author Javier Eguiluz <javier.eguiluz@gmail.com>
 */

class EasyAdminController extends AbstractController

{
    use AdminControllerTrait;

public static function getSubscribedServices(): array
{
    return array_merge(parent::getSubscribedServices(), [
        'easyadmin.autocomplete' => Autocomplete::class,
        'easyadmin.config.manager' => ConfigManager::class,
        'easyadmin.paginator' => Paginator::class,
        'easyadmin.query_builder' => QueryBuilder::class,
        'easyadmin.property_accessor' => PropertyAccessorInterface::class,
        'easyadmin.filter.registry' => FilterRegistry::class,
        'easyadmin.security.authorization_checker' => AuthorizationChecker::class,
        'event_dispatcher' => EventDispatcherInterface::class,
    ]);
}
...