我想自定义新的makerbundle crud maker的样板代码。没有简单的覆盖模板,就像在SensioGeneratorBundle中一样。我尝试基于原始代码生成自定义MyMakeCrud - 但我对注入的DoctrineEntityHelper $ entityHelper感到困惑。
Cannot autowire service "App\Maker\MakeMyCrud": argument "$entityHelper" of
method "__construct()" references class "Symfony\Bundle\MakerBundle\Doctri
ne\DoctrineEntityHelper" but no such service exists. You should maybe alias
this class to the existing "maker.doctrine_entity_helper" service.
现有的maker.doctrine_entity_helper在制造商捆绑包中定义为私有。我怎样才能让注射剂运转?
你可以帮帮我吗?有没有人定制crud一代的例子?新的sf4。答案 0 :(得分:0)
您必须为其定义服务,如下所示:
app.maker.make_crud:
class: App\Maker\MakeCrud
arguments: ['@maker.doctrine_helper']
calls:
- [configureCommand, ['@security.command.user_password_encoder', '@?']]
- [interact, ['@?', '@?', '@security.command.user_password_encoder']]
tags:
- { name: maker.command }
我把它放在config/services.yaml
。
App\Maker\MakeCrud
是你的制造商类。
应该将它放在services_dev.yaml文件中。
希望这有帮助。
答案 1 :(得分:0)
非常感谢你们俩的这篇文章。我也必须自定义MakeCrud命令。 这是适用于我的版本5的配置。
app.maker.make_crud:
class: App\Maker\MakeCrudCommand
arguments: ['@maker.doctrine_helper', '@maker.renderer.form_type_renderer']
calls:
- [configureCommand, ['@security.command.user_password_encoder', '@?']]
- [interact, ['@?', '@?', '@security.command.user_password_encoder']]
tags:
- { name: maker.command }