0

我正在创建一个页面,当用户将消息添加到数据库时,它们会被带回查看消息页面(在页面上显示相关消息的列表)。但是,当我单击提交以添加消息时,它不会将参数也传递给 url。

 public function add_admin($id=null){
    //allows user to add a new message to a dispute
    $this->set('title_for_layout', 'Dispute Information');
    $this->set('stylesheet_used', 'homestyle');
    $this->set('image_used', 'eBOXLogoHome.png');
    $this->layout='home_layout';
    //gets messages where Message.dispute_id=$id
    $dispute=$this->Message->field('dispute_id', array('dispute_id'=>$id));
    //sets the variables

    $this->set('dispute', $dispute);
    //$sets the variable $user to User.id
    $user=$this->Auth->User('id');
    //sets the variable
    $this->set('user',$user);
    //if the request posts to the database
    if($this->request->is('post')){
    //create an instance of message in the database
        $this->Message->create();
    //if the message saves
    if ($this->Message->save($this->request->data)) {
    //redirect the user to Messages/viewMessage_admin
        $this->redirect( array('controller' => 'Messages','action' => 'viewMessage_admin',$id));

    }
    }

    $this->set('id',$id);

    }

public function viewMessage_admin($id=null){
//allows users to view all messages related to a dispute
$this->set('title_for_layout', 'Dispute Information');
$this->set('stylesheet_used', 'homestyle');
$this->set('image_used', 'eBOXLogoHome.png');
$this->layout='home_layout';
$this->set('dispute_id',$id);
debug($id);
//find all messages where Message.dispute_id=$id
$Messages=$this->Message->find('all',array(
'conditions'=>array('dispute_id'=>$id)));
//find User details where user.id=message.user_id
$Username=$this->User->find('all', array(
'conditions'=>array(
'User.id'=>'Message.user_id')));
//get messages where message.dispute_id=$id
$dispute=$this->Message->field('dispute_id', array('dispute_id'=>$id));
//sets the variables
$this->set('dispute', $dispute);
$this->set('username', $Username);
$this->set('dispute_id',$id);
$this->set('message',$Messages);

}

这是我的表格的代码

<table id="data">
<tr>
<th>Please add your message below.</th></tr>
<tr><td>
<?php echo  $this->Form->create('Message', array('action'=>'add_admin')); ?>
<?php echo $this->Form->inpute('user_id', array('type'=>'hidden', 'value'=>$user)); ?>
<?php echo $this->Form->input('message',array('label'=>false)); ?>
</td></tr><tr><td>
<?php echo $this->Form->hidden( 'dispute_id', array( 'value' => $dispute ) ); ?>
<?php echo $this->Form->end('Submit'); ?></td></tr>
</table>
4

2 回答 2

0

你不应该这样做吗?

if ($this->Message->save($this->request->data)) {
    $this->redirect( array('controller' => 'Messages','action' => 'viewMessage_admin', $this->Message->id ));

}

似乎您想将它们重定向到已保存的消息,因此请尝试$this->Message->id改用。

更新

<?php echo  $this->Form->create('Message', array('url'=>'/messages/add_admin/' . $id )); ?>
于 2012-09-25T06:34:59.590 回答
0
public function add_admin($id=null){
    //allows user to add a new message to a dispute
    $this->set('title_for_layout', 'Dispute Information');
    $this->set('stylesheet_used', 'homestyle');
    $this->set('image_used', 'eBOXLogoHome.png');
    $this->layout='home_layout';
    //gets messages where Message.dispute_id=$id
    $dispute=$this->Message->field('dispute_id', array('dispute_id'=>$id));
    //sets the variables

    $this->set('dispute', $dispute);
    //$sets the variable $user to User.id
    $user=$this->Auth->User('id');
    //sets the variable
    $this->set('user',$user);
    //if the request posts to the database
    if($this->request->is('post')){
    //create an instance of message in the database
        $this->Message->create();
    //if the message saves
    if ($this->Message->save($this->request->data)) {

    //redirect the user to Message.viewMessage_admin
    $id = $this->data['Message']['dispute_id'];
    $this->set('id',$id);
    $this->redirect(array('controller'=>'Messages','action'=>'viewMessage_admin',$id));


    }
    }

    $this->set('id',$id);

    }
于 2012-09-26T02:26:51.943 回答