-1

重複の可能性:
非オブジェクトでのメンバー関数の呼び出し

Cake PHP の学習を始めたばかりで、1 つのフィールドからなる非常に単純な登録フォームを作成しようとしています。ただし、モデルとのやり取りに問題があります。以下のコード:

これは私の登録コントローラーです:

class RegisterController extends AppController{

    public $helpers = array('Form', 'Html', 'Js');

    public function index(){

    }

}

これは私の登録コントローラ index.ctp ビューです:

echo $this->Form->create('Users', array('controller' => 'Users', 'action' => 'createUser'));
echo $this->Form->input('username');
echo $this->Form->end('Register');

次に、フォーム データの検証と保存を処理するために、UsersController.php ファイルと Users.php (モデル) ファイルを作成しました。

ユーザーコントローラー.php:

class UsersController extends AppController{


    public function createUser(){

        $this->Users->create();

        $this->Users->save($this->Request->data);

    }

}

そして、Users.php モデル ファイル:

class Users extends AppModel {

    public $validation = array(

        'username' => array(

            'rule1' => array(
                'rule' => 'isUnique',
                'message' => 'That username is already taken'
                ),
            'rule2' => array(

                'rule' => 'nonEmpty',
                'message' => 'This field cannot be empty',
                'required' => true

            )
        )
    );

}

ただし、フォームの「登録」ボタンを押すたびに、次のエラーが発生します。

Call to a member function create() on a non-object

これは、UsersController.php ファイルの次の行を参照しています。

$this->Users->create();

PHPファイルが表示できるケーキデータベースに作成されたユーザーテーブルがあります。私の UsersController.php ファイルがそのモデルに書き込めない理由がわかりません。

4

1 に答える 1