如何为SocialEngine模块设置默认操作

时间:2018-10-02 06:09:33

标签: zend-framework module socialengine

我创建了一个带有两个控制器的模块:索引和支付。两个控制器都有动作,即
索引-> indexAction
支付-> indexAction,callbackAction等
我已经在模块的manifest.php中定义了路由,尽管在该文件中定义路由似乎没有什么区别,因为这些路由无论如何都能正常工作。问题是当我浏览模块的根目录,即http://example.com/pgateway时,仅执行第二个控制器中的特定操作(PayController-> callbackAction)。为什么会这样?浏览example.com/pgateway时,如何使IndexController-> indexAction成为默认页面?

我的路线定义(manifest.php):

'routes' => [
    'pay_general' => [
        'route' => 'pgateway/:controller/:action/*',
        'defaults' => [
            'module' => 'pgateway',
            'controller' => 'pay',
            'action' => 'index',
        ],
        'reqs' => [
            'controller' => '\D+',
            'action' => '\D+',
        ],
    ],
    'pay_callback' => [
        'route' => 'pgateway/:controller/:action/*',
        'defaults' => [
            'module' => 'pgateway',
            'controller' => 'pay',
            'action' => 'callback',
        ],
        'reqs' => [
            'controller' => '\D+',
            'action' => '\D+',
        ],
    ],
],

1 个答案:

答案 0 :(得分:1)

在每个定义中,

route应该是唯一的。 :action表示既可以使用值也可以使用空值。如果为空,将使用默认值。 就您而言,最新路线是最重要的。

尝试删除pay_callback,它将像在pay_general中一样工作。

公约是为控制器管理一条路线,并据此进行管理。