2012-09-24 3 views
0

메신저는 사용자가 데이터베이스에 메시지를 추가 할 때 페이지의 관련 메시지 목록을 보여주는보기 메시지 페이지로 다시 가져옵니다. 그러나 메시지를 추가하기 위해 제출을 클릭하면 매개 변수도 지나치게 전달되지 않습니다. 여기 cakephp가 양식 뒤에 매개 변수를 전달하면

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> 

답변

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); 

    } 
0

당신이이 일을 안 코드입니다? 당신이 저장된 메시지로 리디렉션, 그래서 대신 $this->Message->id를 사용하여 시도하려는 것처럼

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

} 

보인다.

UPDATE는

message.id을 잡고
<?php echo $this->Form->create('Message', array('url'=>'/messages/add_admin/' . $id)); ?> 
+0

, 어떤 난 후하는 매개 변수로 message.dispute_id한다 – user1393064

관련 문제