Zend framework2 Zend框架编辑记录

Zend framework2 Zend框架编辑记录,zend-framework2,zend-router,Zend Framework2,Zend Router,我正在尝试在我的列表页面中创建编辑记录功能。但我得到以下错误时,点击编辑链接对记录 发生404错误 找不到页面 路由无法匹配请求的URL。 没有例外 编辑视图的My module.config.php文件代码为: 'edit' => array( 'type' => 'literal', 'options' => array( 'route' => '/album[/][:action]

我正在尝试在我的列表页面中创建编辑记录功能。但我得到以下错误时,点击编辑链接对记录

发生404错误 找不到页面

路由无法匹配请求的URL。 没有例外

编辑视图的My module.config.php文件代码为:

'edit' => array(
            'type' => 'literal',
            'options' => array(
                'route'    => '/album[/][:action][/:id]',
                     'constraints' => array(
                         'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                         'id'     => '[0-9]+',
                ),
                         'defaults' => array(
                         'controller' => 'Application\Controller\Album',
                         'action'     => 'edit',
                     ),
            ),
        ),
调用编辑控制器并将id传递给的我的相册列表页面代码为:

<a href="<?php echo $this->url('edit',
             array('action'=>'edit', 'id' => $album->id));?>">Edit</a>

请让我知道我错过了什么。我是zend框架的新手

我认为您必须使用
'type'=>'segment'
查看


关于
类型的建议是正确的,但是您也需要


现在请参见module.config.php中的路由脚本

'album' => array(
            'type' => 'literal',
            'options' => array(
                'route' => '/album/',
                'defaults' => array(
                    '__NAMESPACE__' => 'Application\Controller',
                    'controller'    => 'Album',
                    'action'        => 'album',
                ),
            ),
            'may_terminate' => true,
                'child_routes' => array(
                 'add' => array(
            'type' => 'Segment',
            'options' => array(
                'route' => '/album/[:add]',
                'constraints' => array(
                                'add' => '[a-zA-Z0-9_-]+'
                            ),
                'defaults' => array(
                    '__NAMESPACE__' => 'Application\Controller',
                    'controller'    => 'Album',
                    'action'        => 'add',
                ),
            ),
        ),
        'edit' => array(
            'type' => 'Segment',
            'options' => array(
                'route' => '/album/[:edit][/:id]',
                'constraints' => array(
                                'edit' => '[a-zA-Z0-9_-]+'
                            ),
                'defaults' => array(
                    '__NAMESPACE__' => 'Application\Controller',
                    'controller'    => 'Album',
                    'action'        => 'edit',
                ),
            ),
        ),
),
    ),

在这种情况下,如果我点击任何链接,只显示相册页面,而不显示我点击的其他页面

我终于找到了解决方案,现在我的应用程序运行得很好。。。。 我只是将上述代码替换为:

'album' => array(
                 'type'    => 'segment',
                 'options' => array(
                     'route'    => '/album[/][:action][/:id]',
                     'constraints' => array(
                         'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                         'id'     => '[0-9]+',
                     ),
                     'defaults' => array(
                         'controller' => 'Application\Controller\Album',
                         'action'     => 'album',
                     ),
                 ),
             ),

是的,我尝试放置'type'=>'segment',但即使在放置'type'=>'segment'页面没有响应后,它仍然不起作用。。。
 'edit' => array(
        'type' => 'segment',
        'options' => array(
            'route'    => '/album[/][:action][/:id]',
                 'constraints' => array(
                     'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                     'id'     => '[0-9]+',
            ),
            'defaults' => array(
                 'controller' => 'Application\Controller\Album',
                 'action'     => 'edit',
            ),
        ),
        'may_terminate' => true, // Add this line
    ),
'album' => array(
            'type' => 'literal',
            'options' => array(
                'route' => '/album/',
                'defaults' => array(
                    '__NAMESPACE__' => 'Application\Controller',
                    'controller'    => 'Album',
                    'action'        => 'album',
                ),
            ),
            'may_terminate' => true,
                'child_routes' => array(
                 'add' => array(
            'type' => 'Segment',
            'options' => array(
                'route' => '/album/[:add]',
                'constraints' => array(
                                'add' => '[a-zA-Z0-9_-]+'
                            ),
                'defaults' => array(
                    '__NAMESPACE__' => 'Application\Controller',
                    'controller'    => 'Album',
                    'action'        => 'add',
                ),
            ),
        ),
        'edit' => array(
            'type' => 'Segment',
            'options' => array(
                'route' => '/album/[:edit][/:id]',
                'constraints' => array(
                                'edit' => '[a-zA-Z0-9_-]+'
                            ),
                'defaults' => array(
                    '__NAMESPACE__' => 'Application\Controller',
                    'controller'    => 'Album',
                    'action'        => 'edit',
                ),
            ),
        ),
),
    ),
'album' => array(
                 'type'    => 'segment',
                 'options' => array(
                     'route'    => '/album[/][:action][/:id]',
                     'constraints' => array(
                         'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                         'id'     => '[0-9]+',
                     ),
                     'defaults' => array(
                         'controller' => 'Application\Controller\Album',
                         'action'     => 'album',
                     ),
                 ),
             ),