我在继承的旧版 Zend 应用程序上路由时遇到问题 - 想知道是否有人可以帮助我调试?
到目前为止,我已经检查过:
-
application.config.php - 模块正确加载:
'modules' => array( 'App', 'Finding', 'Listing',
等等
-
module.config.php 并且路径的路由似乎没问题,例如:
'listing' => array( 'type' => 'segment', 'options' => array( 'route' => '/admin/property/listing[/:action[/:id]][/:component/:optionTitle/:optionValue]', 'constraints' => array( 'action' => '[a-z0-9_-]*', 'id' => '[0-9]+', 'component' => '[a-z0-9_-]*', 'optionTitle' => '[a-z0-9_-]*', 'optionValue' => '[a-z0-9_-]*' ), 'defaults' => array( 'controller' => 'AdminControllerListing', 'action' => 'list', ), ), ),
我得到的实际错误消息是:
The requested URL could not be matched by routing. No Exception available
我正在做的是在用户登录区域中,单击加载正常的列表类别,然后提交一个 POST 表单,该表单更新与该 ID 关联的数据库中的特定属性。
但是,在提交时我收到上述消息,如果不是路由问题,是否有进一步的方法可以追踪此问题?
编辑
注释对于调试内容来说看起来并不那么好,所以我将根据要求在此处添加它们:
发布数据数组:
[listingId] => 121 [colvalues] => Array ( [0] => 11 [1] => 22 [2] => 33 [3] => 44 [4] => 55 [5] => 66 [6] => 77 [7] => 88 )
单个网址结构
admin/property/listing/view/11111
它正在发布回相同的URL - 因此:
admin/property/listing/view
路由具有可选的id
参数
/admin/property/listing[/:action[/:id]]
您不是在发布id
参数,而是listingId
.
我的猜测是:
-
AdminControllerListing
没有viewAction
. -
有专门检查
id
参数的控制器逻辑,如果未提供,则返回带有404
状态代码的响应。
我认为这些是原因的原因是,即使您的路由中缺少id
参数(admin/property/listing/view
),路由器仍应与控制器操作匹配(因为id
是可选参数)。