2

私はcakephpの初心者で、コントローラーにコントローラーをインポートしたいので、以下の構文を使用します。これは、ユーザーコントローラーをインポートするコントローラーです。

users_controller.php

 function api_work(){ $data = $this->User->find('all'); $this->set('data' , $data); }

plays_controller.php

    function api_show()
        {
            $this->layout= false;
            App::import('Controller', 'Users');
            $Users = new UsersController;
            $Users->constructClasses();
            $data = $Users->api_work();
            pr($data); //it not display anything and shows error like undefined varia
ble
        }

コントローラが正常にインポートされました。質問は、api_work() 関数からデータを返すにはどうすればよいですか?

4

1 に答える 1

6

CakePHP は MVC (モデル ビュー コントローラー) です。users_controller の api_work 関数は、代わりに User モデル (User.php) にある必要があります。$this->User->find('all');または、の代わりに、plays_controller.php で行うこともできます$Users->api_work()

上記の提案は、次の行をすべて削除する必要があることを意味します。

App::import('Controller', 'Users');
$Users = new UsersController;
$Users->constructClasses();

また、users_controller.php の先頭 (クラス宣言のすぐ下) に以下を追加する必要があります。

$uses = array([...], 'User'); OR $uses = array('User');

CakePHP の本 ( http://book.cakephp.org/ ) を読むことを強くお勧めします。

于 2012-06-09T05:57:30.680 に答える