伙计们。
请帮助我,我完全被困住了。
/src/Application/Lexik/TranslationBundle/Resources/config/services.yml
parameters:
lexik_translation.locale.loader.class: Application\Lexik\TranslationBundle\LocalesLoader\OrmLocalesLoader
lexik_translation.locale.entity: Application\Lexik\TranslationBundle\Entity\Locale
services:
lexik_translation.locale.repository:
class: Doctrine\ORM\EntityRepository
factory_service: doctrine.orm.default_entity_manager
factory_method: getRepository
arguments:
- %lexik_translation.locale.entity%
lexik_translation.locale.loader:
class: %lexik_translation.locale.loader.class%
parameters:
- @lexik_translation.locale.repository
src /应用程序/Ibrows/SonataTranslationBundle/DependencyInjection/Compiler/ReplaceCrudControllerPass.php
namespace Application\Ibrows\SonataTranslationBundle\DependencyInjection\Compiler;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;
class ReplaceCrudControllerPass implements CompilerPassInterface
{
/**
* {@inheritdoc}
*/
public function process(ContainerBuilder $container)
{
if (!$container->hasDefinition('lexik_translation.locale.loader')) {
throw new \RuntimeException('The "lexik_translation.locale.loader" configuration required.');
}
$definition = $container->getDefinition('ibrows_sonata_translation.admin.orm');
$definition->setClass('Application\Ibrows\SonataTranslationBundle\Admin\ORMTranslationAdmin');
$definition->replaceArgument(2, 'ApplicationIbrowsSonataTranslationBundle:TranslationCRUD');
$definition->addMethodCall('setLocalesLoader', array(new Reference('lexik_translation.locale.loader')));
}
}
当我运行任何cli命令或重新加载页面时,出现下一个错误:
[Symfony\Component\Debug\Exception\ContextErrorException]
Catchable Fatal Error: Argument 1 passed to Application\Lexik\TranslationBundle\LocalesLoader\OrmLocalesLoader::__construct() must be an instance of Doctrine\ORM\EntityRepository, none given, called in /private/var/www/odesk/translate-admin/app/cache/dev/appDevDebugProjectContainer.php on line 2385 and defined
在appDevDebugProjectContainer.php处有下一个(不将@ lexik_translation.locale.repository注入构造函数中):
/**
* Gets the 'lexik_translation.locale.loader' service.
*
* This service is shared.
* This method always returns the same instance of the service.
*
* @return \Application\Lexik\TranslationBundle\LocalesLoader\OrmLocalesLoader A Application\Lexik\TranslationBundle\LocalesLoader\OrmLocalesLoader instance.
*/
protected function getLexikTranslation_Locale_LoaderService()
{
return $this->services['lexik_translation.locale.loader'] = new \Application\Lexik\TranslationBundle\LocalesLoader\OrmLocalesLoader();
}
为什么这么重要?有人知道吗?
我只是有错字。并在发帖时意识到这一点。需要通过arguments:
,而不是parameters:
在services.yml
。正确的是:
services:
lexik_translation.locale.repository:
class: Doctrine\ORM\EntityRepository
factory_service: doctrine.orm.default_entity_manager
factory_method: getRepository
arguments:
- %lexik_translation.locale.entity%
lexik_translation.locale.loader:
class: %lexik_translation.locale.loader.class%
arguments: # < --- HERE WAS A TYPO
- @lexik_translation.locale.repository
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句