【问题标题】:Trying to create a new action in a backend module: "Action "module/show" does not exist."尝试在后端模块中创建新操作:“操作“模块/显示”不存在。”
【发布时间】:2010-12-07 16:53:36
【问题描述】:

我在 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->调度程序->通知(新 sfEvent($this, 'application.log', array(sprintf('Action "%s/%s" 没有 存在', $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. 捕捉 (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 ... 10. require_once(dirname(FILE).'/../config/ProjectConfiguration.class.php'); 11.

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

'开发',真); 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/推进

贾维

【问题讨论】:

    标签: symfony1


    【解决方案1】:

    试试:

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

    回答您的评论:在您的 routing.yml 中,尝试添加类似以下的路由规则,就在最终规则之前,以匹配 @987654324 @ 不带斜杠的模式(因为我猜 ordini/detagli 操作与第一条规则不匹配):

    default_noslash:
      url:   /:module/:action
    

    此外,您可以通过一些 Google 搜索获得大量解决方案:

    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/

    等等

    希望对你有帮助。

    【讨论】:

    • 我这样做了,但它不起作用。我意识到当我在网址末尾添加“/”时它可以完美运行,但为什么呢?只需使用“backend_dev.php/ordini/new”就可以进行新操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2022-10-19
    • 2021-04-13
    • 1970-01-01
    相关资源
    最近更新 更多