Php 为什么getPostParameters不能在symfony 1.4上工作?
我在symfony 1.4中有一个表格,它是为每种能力创建的。我的表格是成功创建的。但是当我试图保存我的表单时,我做不到。我去看我的动作代码,getPostParameters函数似乎不起作用。我使用getParameterHolder查看参数中的错误,但在输入正确的值后,getPostParameters函数不起作用 这是我从getParameterHolder获得的信息: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
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。哦,我的天哪!是的,方法是得到!我成功获得我的参数并保存在数据库中!比你好多了!