0

次のように、コントローラーのビューに変数を設定しようとしています。

これはユーザー/追加アクションです

public function add() { 
if ($this->request->is('post')) {
        $usertype = $this->User->Usertypes->find('list', array('fields' => array('id', 'description')));
        $this->set('usertype', $usertype);
        $this->User->create();
        if ($this->User->save($this->request->data)) {
            $this->Session->setFlash(__('The user has been saved.'));
            return $this->redirect(array('action' => 'index'));
        } else {
            $this->Session->setFlash(__('The user could not be saved. Please, try again.'));
        }
    }
}

Debugger::dump($usertype); を使用する場合 私はこれを取得します

array(  (int) 1 => 'Staff',     (int) 2 => 'Administrator',     (int) 3 => 'Coordinator' )

したがって、 $usertype は間違いなく正しく設定されています。/View/Users/add.ctp にある私のビューでは、次のように変数にアクセスしようとしています:

これはView/Users/add.ctp です

<div class="users form">
<?php echo $this->Form->create('User'); ?>
    <fieldset>
        <legend><?php echo __('Add User'); ?></legend>
    <?php
        echo $this->Form->input('firstName');
        echo $this->Form->input('lastName');
        echo $this->Form->input('email');
        echo $this->Form->input('password');
        echo $this->Form->input('usertypes_id',array('options'=>$usertype));
    ?>
    </fieldset>
<?php echo $this->Form->end(__('Submit')); ?>
</div>

ただし、「未定義の変数: ユーザータイプ [APP/View/Users/add.ctp, line 10]」というエラーが表示されます。

私は CakePHP に比較的慣れていません。ここで何か間違ったことをしていますか?

4

2 に答える 2

0

if 内に変数 $usertype を設定しています。これは、リクエストが POST の場合を意味しますが、URL をヒットした場合のリクエスト タイプはデフォルトで GET です。

于 2013-10-22T13:58:16.237 に答える