我的目标:重用一个联系表单,以与几个不同的实体相关,我称之为“父母”,即组有联系信息,成员有联系信息等。我尝试这样做的方法是: 1.为联系人创建一个视图文件,名为"form.ctp“,它不会创建新表单,也不会提交,只是回显联系人的字段。2.使用requestAction调用这个文件我的问题:表单的_Token崩溃了。
父add.ctp示例
<?php echo $this->Form->create('Group');?>
<fieldset>
echo $this->Form->input($field_prefix.'contact_id',array('type'=>'hidden'));
<?php echo $this->requestAction(array('controller' => 'contacts', 'action' => 'form'), array('named' => array('index'=>'0','parent'=>'Group',
'fields'=>array(
'email'=>array('value'=>'xx@yy.com','hidden'=>1)
))));在form.ctp中,我有:
//Associated Model
echo $this->Form->input('Contact.0.city',array('type'=>'hidden'));
echo $this->Form->input('Contact.0.postcode');
echo $this->Form->input('Contact.0.phone');
echo $this->Form->input('Contact.0.cellphone');
echo $this->Form->input('Contact.0.email',array('value'=>""));
echo $this->Form->input('Contact.0.id',array('type'=>'hidden'));
?>查看生成的HTML源代码,我发现无论我是使用request操作还是只是将form.ctp的内容复制到“父”的add文件中,我都会得到相同的HTML结果。但是!当我使用form.ctp操作请求时,我得到了黑洞,令牌被弄乱了!有什么想法吗?先谢谢你,奥利
发布于 2013-01-23 05:16:07
如果您的问题仅仅是重用一个表单,那么您可以将该表单用作一个元素,然后您可以多次调用它,代入所需的精确值。
至于SecurityComponent,我建议(至少作为临时修复)禁用特定操作的SecurityComponent,方法是在控制器的beforeFilter()中使用$this->Security->unlockedActions();
https://stackoverflow.com/questions/12837950
复制相似问题