我的页面上有几个新闻,每个新闻我们都可以通过表单添加评论。 所以实际上我的index.ctp上有3个新闻,每个新闻下都有一个表格来评论这个特定的新闻。问题是,当我添加评论时,数据来自页面上的最后一个表格。 我不知道如何改变它们。 我有红色multirecord forms和Multiple Forms per page(最后一个连接到不同的动作),我不明白如何管理它。 第二个问题是,我不能通过表单向控制器发送$ id变量($ id有真值,我只在index.ctp上显示它)
这是我的表格
<?php $id = $info['Info']['id']; echo $this->Form->create('Com', array('action'=>'add',$id)); ?>
<?php echo $this->Form->input(__('Com.mail',true),array('class'=>'form-control','field'=>'mail')); ?>
<?php echo $this->Form->input(__('Com.body',true),array('class'=>'form-control')); ?>
<?php echo $this->Form->submit(__('Dodaj komentarz',true),array('class'=>'btn btn-info')); ?>
<?php $this->Form->end(); ?>
并且有我的控制器ComsController.php
class ComsController extends AppController
{
public $helpers = array('Html','Form','Session');
public $components = array('Session');
public function index()
{
$this->set('com', $this->Com->find('all'));
}
public function add($idd = NULL)
{
if($this->request->is('post'))
{
$this->Com->create();
$this->request->data['Com']['ip'] = $this->request->clientIp();
$this->request->data['Com']['info_id'] = $idd;
if($this->Com->save($this->request->data))
{
$this->Session->setFlash(__('Comment added with success',true),array('class'=>'alert alert-info'));
return $this->redirect(array('controller'=>'Infos','action'=>'index'));
}
$this->Session->setFlash(__('Unable to addd comment',true),array('class'=>'alert alert-info'));
return false;
}
return true;
}
}
答案 0 :(得分:2)
您没有关闭表单
<?php echo $this->Form->end(); ?>
而不是
<?php $this->Form->end(); ?>
你应该写的id问题
echo $this->Form->create(
'Com',
array('action'=>'add/'.$id
)
);
或
echo $this->Form->create(
'Com',
array(
'url' => array('action'=>'add', $id)
)
);