2011-11-06 5 views
1

私はCakePHP 2.0を使い始めています。CakePHP 2.0のフォームヘルパーでエラーが発生しました

のAppController::これは私のコードです

class AppController extends Controller 
{ 
    function beforeFilter() 
    { 
     $this->Auth->userModel = 'User'; 
     $this->Auth->fields = array('username' => 'email', 'password' => 'password'); 
     $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login'); 
     $this->Auth->loginRedirect = array('controller' => 'hotels', 'action' => 'dashboard'); 
    } 
} 

がUserController:

class UsersController extends AppController 
{ 
    var $name = 'Users'; 
    var $helpers = array('Html','Form'); 
    var $components = array('Auth','Session'); 

    function beforeFilter() 
    { 
     $this->Auth->allow("logout"); 
     parent::beforeFilter(); 
    } 

    function logout() 
    { 
     $this->redirect($this->Auth->logout()); 
    } 

    function login() 
    { 
     if ($this->Auth->login()) 
     { 
      $this->redirect($this->Auth->redirect()); 
     } else 
     { 
      $this->Session->setFlash(__('Invalid username or password, try again')); 
     } 
    } 
} 

login.ctp:

echo $this->Form->create(); //'User', array('action' => 'login')); 
echo $form->Form->input('email'); 
echo $form->Form->input('password'); 
echo $form->Form->end('Login'); 

エラーは次のとおりです:

Notice (8): Undefined variable: form [APP\View\Users\login.ctp, line 13] 
Notice (8): Trying to get property of non-object [APP\View\Users\login.ctp, line 13] 
Fatal error: Call to a member function input() on a non-object in E:\proyectos\web\swt\app\View\Users\login.ctp on line 13 

アイデアはありますか?前もって感謝します!

答えて

3

これら

echo $form->Form->input('email'); 
echo $form->Form->input('password'); 
echo $form->Form->end('Login'); 

は、私は同じコードの上に行く2時間のように費やしてきたし、これを見ていない

echo $this->Form->input('email'); 
echo $this->Form->input('password'); 
echo $this->Form->end('Login'); 
+0

でなければなりません。どうもありがとう!私は自分を蹴るつもりです、すぐに戻ってください。 – Sandy

+0

時々ちょうど異なるペアの目をとる。それは4つの文字の単語です - より多くの4つの文字の単語を引き起こす:) –

+0

速いフォローアップとして、私は自分のlogin()メソッドを変更しました(上記参照)、私はフォームを取得し、提出することができますが、ログイン。それは常にフラッシュエラーメッセージを表示し、私をフォームに返します。何か案が?もう一度おねがいします – Sandy

関連する問題