2015-06-13 3 views
0

Я новичок в фреймворке cakePHP с версией 2.0. Моя проблема в том, что когда я сохраняю данные или вставляю новую запись, поле пусто или данные не сохраняются, как я могу исправить это. ,Вставка с пустой строкой в ​​cakePHP

My Model

class Post extends AppModel{ 
    public $name = 'posts'; 
} 

Мой контроллер

public function add(){ 
    if($this->request->is('post')){ 
     $this->Post->create(); 
     if($this->Post->save($this->request->data)){ 
      $this->Session->setFlash('The posts was saved'); 
      $this->redirect('index'); 
     }  
    } 
} 

Мой Посмотреть

echo $this->Form->create('Create Posts'); 
echo $this->Form->input('title'); 
echo $this->Form->input('body'); 
echo $this->Form->end('Save Posts'); 

ответ

1

Вы должны поместить Вэл правила idation в модели Post. Затем вы можете проверить подтверждение данных или нет в действии контроллера до save в модель. Смотрите следующие Model и controller

В модели

class Post extends AppModel{ 
    public $name = 'posts'; 

    public $validate = array(
     'title' => array(
      'alphaNumeric' => array(
       'rule' => 'alphaNumeric', 
       'required' => true, 
       'message' => 'This is can'\t blank' 
      ), 

     ), 
     'body' => array(
      'alphaNumeric' => array(
       'rule' => 'alphaNumeric', 
       'required' => true, 
       'message' => 'This is can'\t blank' 
      ),    
     ), 
    ); 
} 

В контроллере

public function add(){ 
    if($this->request->is('post')){ 
     $this->Post->create(); 
     $this->Post->set($this->request->data); 

     if ($this->Post->validates()) { 
     // it validated logic 
      if($this->Post->save($this->request->data)){ 
       $this->Session->setFlash('The posts was saved'); 
       $this->redirect('index'); 
      } 
     } else { 
      // didn't validate logic 
      $errors = $this->Post->validationErrors; 
     }  
    } 
} 
Смежные вопросы