0

私のコントローラーには add($id = null) 関数があります。add/43 を入力すると動作します。ただし、検証に失敗した場合は、add/43 なしでリロードされます。(エラーメッセージを表示した後)。何をしますか?.. バージョン 1.3 コントローラー:

    function add($id = null) {    
if (!empty($this->data)) {     
              $this->ConsultingDet->create();   
      if ($this->ConsultingDet->save($this->data)) {  
          $this->Session->setFlash('The consulting det has been saved', true);  
          $this->redirect(array('controller' => 'patients', 'action' => 'home'));  
      } else {  
          $this->Session->setFlash('The consulting det could not be saved. Please,     try   again.', true);  
      }  
  }  
  if (is_null($id)) {  
      $this->set('id', 0);  
  }  

add.ctp
:

<div class="consultingDets form">
<?php echo $this->Form->create('ConsultingDet');?>  
<fieldset> 
    <div class="sub1">
        <?php

        echo $this->Form->input('patient_id', array('type' => 'hidden', 'value' => $patient['Patient']['id'])); 
        if ($id>0)       //This (id) brings out error on redirection
            echo $this->Form->input('id',array('type' => 'hidden', 'value' => $id));
            echo $this->Form->input('temperature');
        ?>            
    </div>         
</fieldset>
<?php echo $this->Form->end(__('Submit', true)); ?>    

4

2 に答える 2

1
<?php echo $this->Form->create(null, array('url' => 
            array('controller' => 'consultingdets', 'action' => 'add', $id))); ?>
//<form action="consultingdets/add/43"

基本的に、id必要なパラメータをフォームに渡します。そうすれば、送信して検証が失敗した場合、ケーキは正しいURLにリダイレクトされます(つまり、必要なIDをパラメーターとして使用します)

コントローラー名は異なる場合があります。

于 2012-06-01T09:48:06.423 に答える
0

これを試すことができます:

function add($id = null) {    
   if (!empty($this->data)) {     
              $this->ConsultingDet->create();   
      if ($this->ConsultingDet->save($this->data)) {  
          $this->Session->setFlash('The consulting det has been saved', true);  
          $this->redirect(array('controller' => 'patients', 'action' => 'home'));  
      } else {  
          $this->Session->setFlash('The consulting det could not be saved. Please,   try   again.', true);  
          //redirect to referrer page
          $this->redirect($this->referer());           
      }  
  }  
  if (is_null($id)) {  
      $this->set('id', 0);  
  }  
于 2012-06-01T08:43:04.287 に答える