1

我在 ZF2-Application 中使用 AbstractRestfulController 作为控制器。该控制器实现了 create()、update() 等。

是否可以在这些 REST-Function 旁边进行操作?

例如,我想要: url.com/model/id 来获取模型(这已经有效),但我也希望能够调用 url.com/model/doSomething。

我尝试使用 child_routes,但它不起作用:

'car' => array(
                            'type'         => 'literal',
                            'options'      => array(
                                    'route'       => '/car',
                                    'defaults'    => array(
                                            'controller' => 'CarDealer\Controller\Car',
                                            'action' => 'index'
                                    ),
                            ),
                            'child_routes' => array(
                                    'rest'    => array(
                                            'type'    => 'segment',
                                            'options' => array(
                                                    'route'       => '[/:id]',
                                                    'constraints' => array(
                                                            'id' => '[0-9]+',
                                                    ),
                                                    'defaults'    => array(
                                                            'controller' => 'CarDealer\Controller\Car',
                                                    ),
                                            ),
                                    ),
                                    'actions' => array(
                                            'type'    => 'segment',
                                            'options' => array(
                                                    'route'       => '[/:action]',
                                                    'constraints' => array(
                                                            'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                                                            'id'     => '[0-9]+',
                                                    ),
                                                    'defaults'    => array(
                                                            'controller' => 'CarDealer\Controller\Car',
                                                            'action'     => 'index',
                                                    ),
                                            ),
                                    ),
                            ),
                    ),

我很确定上述内容没有多大意义,但是我找不到正确的提示来使事情正常进行。

谢谢你的帮助!

4

2 回答 2

4

AbstractRestfulController 不会分派给任意操作方法,因此您应该使用子路由和另一个控制器。

于 2013-02-17T11:56:50.557 回答
0

使用 WildCard Routes 做一些不例外的事情。在控制器中获取通配符参数以执行该操作

于 2013-02-16T05:39:42.587 回答