0

Cakephp にユーザーの first_name と last_name を追加するフォームがあります。ここにコードがあります

ビューのコード ( add.ctp)

<?php 
echo $this->Form->create('User');
echo $this->Form->input('first_name',array('label'=>'First Name'));
echo $this->Form->input('last_name',array('label'=>'Last Name'));           
echo $this->Form->end('Add User');
?>

UserController のコード ( UsersController.php)

<?php
     public function add(){
          if($this->request->is('post')){
               $addData = $this->request->data;
               $this->User->create();       
               if($this->User->save($addData)){
                  $this->Session->setFlash('User has been added successfully');
                  $this->redirect(array('action'=>'index'));            
               }            
          }
     }    
?>

ユーザー モデルのコードを表示 ( UserModel.php)

<?php
  class UserModel extends AppModel{
   public $validate = array(
     'first_name' => array(
          'rule'    => 'notEmpty',
          'message' => 'first name should not be empty.'
      ),
     'last_name' => array(
         'rule'    => 'notEmpty',
         'message' => 'last name should not be empty.'
      )
   );   
}
?>

これは私が使用しているコードです。ケーキブックでも見たことがあり、他のさまざまなルールを使用しましたが、フォームに対して検証が機能していません。何が原因なのか教えてください。前もって感謝します!

4

3 に答える 3

5

モデルのファイル名が正しくありません。そうであってはならUser.phpないUserModel.php

于 2013-04-16T06:38:58.067 に答える
1

user.phpmysql でテーブル名をユーザーとして使用している場合は、ファイル名を に変更してください。UserModel.php

あなたのクラス名は以下のようでなければなりません

<?php
  class User extends AppModel{

    var $name = 'User';

   public $validate = array(
     'first_name' => array(
          'rule'    => 'notEmpty',
          'message' => 'first name should not be empty.'
      ),
     'last_name' => array(
         'rule'    => 'notEmpty',
         'message' => 'last name should not be empty.'
      )
   );   
}
?>
于 2013-04-16T08:58:31.950 に答える
0

モデル名は User にする必要があります (テーブル名とコントローラー名は users であるため)。モデルファイル(User.php)でこれを試してください

<?php
App::uses('AppModel', 'Model');
class User extends AppModel{
public $validate = array(
 'first_name' => array(
      'rule'    => 'notEmpty',
      'message' => 'first name should not be empty.'
  ),
 'last_name' => array(
     'rule'    => 'notEmpty',
     'message' => 'last name should not be empty.'
  )

);
}

于 2013-04-16T06:40:57.983 に答える