Php 为什么getPostParameters不能在symfony 1.4上工作?

Php 为什么getPostParameters不能在symfony 1.4上工作?,php,symfony-1.4,Php,Symfony 1.4,我在symfony 1.4中有一个表格,它是为每种能力创建的。我的表格是成功创建的。但是当我试图保存我的表单时,我做不到。我去看我的动作代码,getPostParameters函数似乎不起作用。我使用getParameterHolder查看参数中的错误,但在输入正确的值后,getPostParameters函数不起作用 这是我从getParameterHolder获得的信息: sfParameterHolder Object ([parameters:protected] => Ar

我在symfony 1.4中有一个表格,它是为每种能力创建的。我的表格是成功创建的。但是当我试图保存我的表单时,我做不到。我去看我的动作代码,getPostParameters函数似乎不起作用。我使用getParameterHolder查看参数中的错误,但在输入正确的值后,getPostParameters函数不起作用

这是我从getParameterHolder获得的信息:

   sfParameterHolder Object
([parameters:protected] => Array
        (
            [professionnal_competence] => Array
                (
                    [rayon_competence3] => 24
                    [rayon_competence9] => 22
                    [rayon_competence19] => 32
                )

            [module] => professionnal_subregion
            [action] => saveCompetenceRadius
        )

)
我的职能是:

public function executeSaveCompetenceRadius(sfWebRequest $request) {
        $user = $this->getUser()->getGuardUser();

        $q = ProfessionnalCompetenceQuery::create()
            ->addSelect('pc.*')
            ->where('pc.professionnal_id= ?',  $user->getId());
        $res = $q->execute();

        $values = $request->getPostParameters(['professionnal_competence']);
        $test = $request->getParameterHolder();
        var_dump($values); print_r($values); print_r($request->getParameterHolder());
        exit;

        foreach ($res as $professionnalCompetence) {
            foreach ($values['professionnal_competence'] as $k => $val) {
                if ($k == 'rayon_competence' . $professionnalCompetence->getCompetenceId()) {
                    $professionnalCompetence->setRayonCompetence($val);
                    $professionnalCompetence->save();
                }
            }
        }
        return $this->renderComponent('professionnal_subregion', 'competenceRadius');
       // return "test";
        //return $this->renderPartial('professionnal_subregion/competenceradius');
    }
这是我的表格:

class ProfessionnalCompetenceRadiusForm extends BaseProfessionnalCompetenceForm {


  public function configure()
  {
     unset($this['rayon_competence']);

      $this->widgetSchema['rayon_competence'.$this->object->getCompetenceId()] = new sfWidgetFormSelectUISlider(array('max'=>50,'step'=>1));
      $this->widgetSchema->setHelp('rayon_competence'.$this->object->getCompetenceId(),'en kilomètres');
      $this->widgetSchema->setLabel('rayon_competence'.$this->object->getCompetenceId(),'rayon');
      $this->setValidator('rayon_competence'.$this->object->getCompetenceId(), new sfValidatorInteger(array('max'=>50)));

  }
}

有人有主意或者可以帮助我??因为我尝试了很多事情,但是没有成功。提前感谢:

我认为错误隐藏在这行中:

$values = $request->getPostParameters(['professionnal_competence']);
您正在将数组传递给接受字符串的函数。尝试删除“专业能力”周围的括号

编辑:划掉那个。getPostParameters不接受任何参数。另一方面,getPostParameter接受两个字符串(第一个是字段名)。因此,您的代码应该是:

$values = $request->getPostParameter('professionnal_competence');
错误在这里:

$values = $request->getPostParameters(['professionnal_competence']);
函数sfWebRequest::getPostParameters实际上不接受参数

您可以使用[…]访问此阵列,也可以使用getPostParameter进行安全的深度访问:

$val = $request->getPostParameter('a[b]');
// basically the same as, but with error checks:
$val = $request->getPostParameters()['a']['b'];

你能给我们看一下你的表格吗?是的,我编辑了我的消息:你能试试$values=$request->getPostParameter'Professional_Competency[rayon_Competency 3];?我尝试了,但是变量转储没有给我空值。查看:/var/www/html/plugins/ppPart2ProSubregionPlugin/modules/professional_subsection/lib/baseprofessional_subsection.class.php:56:null谢谢!!!我试试你的建议:$values=$request->getPostParameter'Professional_Capability';但它不起作用,但也许我错了。你确定你要邮寄表格吗?试试var_转储$request->getMethod,$request->getGetParameters和$request->getPostParameters。哦,我的天哪!是的,方法是得到!我成功获得我的参数并保存在数据库中!比你好多了!