尝试在后端模块中创建新操作:“Action”模块/ show“不存在”。

时间:2010-12-07 16:53:36

标签: symfony1

我在backend / modules / ordini / actions / actions.class.php中创建了一个名为executeDetagli()的新动作。

当我尝试去“backend_dev.php / ordini / detagli”它给了我这个错误:

  

404 |找不到| sfError404Exception   动作“ordini / show”不存在。   堆栈跟踪

* at ()
  in SF_ROOT_DIR/lib/vendor/symfony/lib/controller/sfController.class.php
     

第192行......                189. $ this-> dispatcher-> notify(new   sfEvent($ this,'application.log',   array(sprintf('Action“%s /%s”没有   exists',$ moduleName,$ actionName))));                190.}                191。

         192.       throw new sfError404Exception(sprintf('Action
     

“%s /%s”不存在。',$ moduleName,   $ actionName));                193.}                194。

         195.     // create an instance of the action
* at sfController->forward('ordini',
     

'显示')         在SF_ROOT_DIR / lib / vendor / symfony / lib / controller / sfFrontWebController.class.php中   第48行......                 45.}                 46。

          47.       // make the first request
          48.       $this->forward($moduleName,
     

$ actionName);                 49.}                 50. catch(sfException $ e)                 51. {       *在sfFrontWebController-> dispatch()         在SF_ROOT_DIR / lib / vendor / symfony / lib / util / sfContext.class.php中   第170行......                167. * /                168.公共职能派遣()                169. {                170. $ this-> getController() - > dispatch();                171.}                172。

         173.   /**
* at sfContext->dispatch()
  in SF_ROOT_DIR/web/backend_dev.php line
     13 p ...                 10. require_once(dirname( FILE )。'/ .. / config / ProjectConfiguration.class.php');                 11。

          12. $configuration = ProjectConfiguration::getApplicationConfiguration('backend',
     

'dev',true);                 13. sfContext :: createInstance($ configuration) - > dispatch();                 14。

我在routing.yml中有这个:

shop_order:
  class: sfPropelRouteCollection
  options:
    model:                ShopOrder
    module:               ordini
    prefix_path:          /ordini
    column:               orders_id
    with_wildcard_routes: true


default:
  url:   /:module/:action/*

有什么想法吗?

sf 1.4 / propel

哈维

1 个答案:

答案 0 :(得分:0)

尝试:

  • symfony cc
  • 确保视图 ... / modules / ordini / templates / detagliSuccess.php 存在

回答你的评论:在你的 routing.yml 中,尝试添加一个路由规则,如下一个,就在最终规则之前,以匹配{{ 1}}没有斜杠的模式(因为我猜module/action动作与第一条规则不匹配):

ordini/detagli

同样,有很多解决方案可以通过一些谷歌搜索获得:

http://blog.phpleo.com/2008/01/27/redireccion-301-en-symfony-filtros-vs-htaccess/

http://www.decentmind.com/2010/07/symfony-without-a-slash-at-the-tail/

希望它有所帮助。