我正在使用ZfcUser模块。我见过wiki和here我已经找到了如何覆盖ZfcUser控制器中现有动作的视图。我的问题是,如何为例如添加其他操作changeDisplayPictureAction()
。
我使用的方法是创建自定义模块,以这种方式配置module.config.php
return array(
'controllers' => array(
'invokables' => array(
'zfcuser' => 'MyNamespace\Controller\UserController',
),
),
);
我还使用UserController
扩展ZfcUser\Controller\UserController
,但因为我在其中创建了新操作以及新视图。无法将父类操作指向它们在父模块中已有的视图。换句话说,我必须复制存在子类或最终类的模块中的所有视图。否则我收到此错误消息
Zend\View\Renderer\PhpRenderer::render: Unable to render template "my-user/profile/index"; resolver could not resolve to a file
我想要做的就是在第三方模块中添加一些新动作,而不会打扰它们,但要扩展它们。
感谢。
答案 0 :(得分:0)
如果您不打算更改现有功能,为什么要扩展它?只需创建一个新的Controller并正确配置您的路由,以便将新操作分配给新控制器,并让现有控制器处理现有操作。
return array(
'controllers' => array(
'invokables' => array(
'myuser' => 'MyNamespace\Controller\UserController,
),
),
'router' => array(
'routes' => array(
'myuser' => array(
'type' => 'Literal',
'options' => array(
'route' => '/user/change-display-picture',
'defaults' => array(
'controller' => 'myuser',
'action' => 'change-display-picture',
),
),
),
),
),
);