感谢您对此的任何帮助,对于Symfony框架我还是很陌生,因此请尝试着解决这个问题。

我希望能够从管理区域拦截提交的表单并修改数据。

这是我到目前为止(基本形式)的内容。

/apps/backend/modules/proposition/actions/action.class.php

class propositionActions extends autoPropositionActions {

  public function executeCreate(sfWebRequest $request) {
    // modify the name
    $name = $request->getParameter('name');
    $name = $name . ' is an idiot';
    $request->setParameter('name', $name);

    return parent::executeCreate($request);
  }

}


我的表单确实包含一个名称字段:

/apps/backend/modules/proposition/config/generator.yml

generator:
  class: sfDoctrineGenerator
  param:
    model_class:           Proposition
    theme:                 admin
    non_verbose_templates: true
    with_show:             false
    singular:              ~
    plural:                ~
    route_prefix:          proposition
    with_doctrine_route:   true
    actions_base_class:    sfActions

    config:
      actions: ~
      form:
        display: [name, icon, overview, published]


我不确定这是否是您需要查看的文件,但肯定是在HTML中:

<input type="text" id="proposition_name" name="proposition[name]">


当我提交表格时,它只是保存我的名字。我希望它保存我的名字并在后面加上“是个白痴”。

非常感谢

最佳答案

我认为您在正确的位置上Peter,但是修改$request为时已晚,以至于没有效果。

您可以在the "doClean" part of the Form's validator中对入站数据进行这种修改。

或者,如果您需要进行特殊处理,则覆盖生成的processForm()函数可能更有意义。只需将其从cache/frontend/dev/modules/autoProposition/actions/actions.class.php复制到您的apps/backend/modules/proposition/actions/action.class.php中,然后开始黑客入侵。

09-27 13:08