0

ここに私のモデルがあります -->

<?php 
class Post extends AppModel {
 public $validate = array(
        'title' => array(

                'rule'     => 'alphaNumeric',
                'required' => true,
                'message'  => 'Alphabets and numbers only'
        ),
        'body' => array(
            'rule' => 'notEmpty'
        )
    );


}


?>

コントローラー -->

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

そして見る -->

<h1>Add Post</h1>
<?php
echo $this->Form->create('Post');
echo $this->Form->input('title');
echo $this->Form->input('body', array('rows' => '3'));
echo $this->Form->end('Save Post');
?>

どうすればこれを機能させることができますか。私は、cakephp.org で提供されている Cakephp の本に従って、そこに記載されていることとまったく同じことを行いましたが、正しく理解できませんでした。

4

2 に答える 2

0

レコードを作成する前に、コントローラーから設定して検証するだけです

public function add() 
{
            if ($this->request->is('post')) 
            {
                $this->Post->create();
                $this->Post->set($this->request->data['Post']); // Add this Line
                if ($this->Post->validates()) // Add this Line
                {
                  if ($this->Post->save($this->request->data)) 
                 {
                    $this->Session->setFlash('Your post has been saved.');
                    $this->redirect(array('action' => 'index'));
                 } 
                 else 
                 {
                    $this->Session->setFlash('Unable to add your post.');
                 }
                }
                else 
                 {
                    $this->Session->setFlash('Unable to add your post.');
                 }

            }
  }
于 2013-05-16T12:42:55.933 に答える