2013-04-20 51 views
0

我得到表单的内容写入数据库。我的代码如下:CakePHP:将表单内容写入数据库时​​出现问题

视图(index.ctp):

<div class="modal fade" id="test_modal"> 
     <div class="modal-header"> 
     <a class="close" data-dismiss="modal">&times;</a> 
     <h1>Create Customer</h1> 
     </div> 
     <div class="modal-body"> 
     <?php 
     echo $this->Form->create('Contact'); 
     echo $this->Form->input('type'); 
     echo $this->Form->input('name'); 
     echo $this->Form->input('company'); 
     echo $this->Form->input('phone'); 
     echo $this->Form->input('mobile'); 
     echo $this->Form->input('email'); 
     echo $this->Form->input('vatNumber'); 

     echo $this->Form->input('mainAddressLine1'); 
     echo $this->Form->input('mainAddressLine2'); 
     echo $this->Form->input('mainAddressTown'); 
     echo $this->Form->input('mainAddressCounty'); 
     echo $this->Form->input('mainAddressPostCode'); 
     echo $this->Form->input('mainAddressCountry'); 

     echo $this->Form->input('notes', array('rows' => '5')); 
     echo $this->Form->end('Save Customer'); 
     ?> 
     </div> 
    </div> 

控制器(ContactController.php)

class ContactsController extends AppController { 
    public $helpers = array('Html', 'Form', 'Session'); 
    public $components = array('Session'); 

    public function index() { 
     $this->set('contacts', $this->Contact->find('all')); 
    } 

    public function view($id) { 
     if (!$id) { 
      throw new NotFoundException(__('Invalid contact')); 
     } 

     $contact = $this->Contact->findById($id); 
     if (!$contact) { 
      throw new NotFoundException(__('Invalid contact')); 
     } 
     $this->set('contact', $contact); 
    } 

    public function add() {     
     if ($this->request->is('post')) { 
      $this->Contact->create(); 
      if ($this->Contact->save($this->request->data)) { 
       $this->Session->setFlash('Your contact has been saved.'); 
       $this->redirect(array('action' => 'index')); 
      } else { 
       $this->Session->setFlash('Unable to add your contact.'); 
      } 
     } 
    } 
} 

模型(Contact.php)

class Contact extends AppModel {  
} 

任何帮助赞赏。

问候, 斯蒂芬

回答

0

如果视图文件是index.ctp,这意味着,在默认情况下,逻辑thta的处理,因为这是在控制器的index()方法。该方法只设置一个变量。我假设你正在混合视图/动作。请尝试在add.ctp视图中添加您的表单,并调用contacts/add URI。

或者您可以覆盖通过添加一个$this->render调用您的add()方法呈现的观点:

public function add() { 
    $this->autoRender = false; 
    // Rest of your logic 
    $this->render('index'); 
} 

这样的contacts/add URI将服务于index.ctp视图,而不是add.ctp

+0

谢谢@Oldskool,是的,我已经添加了代码add.ctp,它现在可以工作。 – Stephen 2013-04-20 21:39:57

相关问题