2011-12-09 18 views
0

UsersControllerのadd()関数を書くときに問題があります。Cakephp認証チュートリアルでユーザーを追加

public function add(){ 
     if ($this->request->is('post')) { 
      if ($this->User->save($this->request->data)) { 
       $this->Session->setFlash('The new user has been saved.'); 
       $this->redirect(array('action' => 'test')); 
      } 
     } 
     $this->set('title_for_layout', 'Register'); 
    } 

これは、追加ビューctpです。

<?php 
    echo $this->Form->create('User'); 
    echo $this->Form->input('username'); 
    echo $this->Form->input('password'); 
    echo $this->Form->end('Save User'); 
    ?> 

ユーザーにアクセスしようとすると内部エラーが発生する/追加されます。誰もこの問題に対処する方法を知っていますか?ありがとう。

+0

「内部エラー」と表示されている場合は、デバッグdebugを2に設定した場合、core.phpに、よりわかりやすいエラーメッセージが表示されます。 – Nick

+0

ありがとうございました。それは助けになるはずです。私はすでにこの問題を考え出しています。 CakePHPの最新版をダウンロードした後、このチュートリアルの手順に従いました。非常に素晴らしい。 http://www.youtube.com/user/andrewperk#p/u/0/zvwQGZ1BxdM –

答えて

1

$this->dataの代わりに$this->request->is('post')のテストを試しましたか?それは問題ではないかもしれませんが、それは通常、それが行われる方法です。

また、節約のために、あなたが最も可能性が高い(手動でユーザーIDを設定している場合を除く)すべきであることのような何かを:

$this->User->create(); 
$this->User->save($this->data); 

だからあなたのadd関数は次のようになります。

public function add(){ 
     if ($this->data) { 
      $this->User->create(); 
      if ($this->User->save($this->data)) { 
       $this->Session->setFlash('The new user has been saved.'); 
       $this->redirect(array('action' => 'test')); 
      } 
     } 
     $this->set('title_for_layout', 'Register'); 
    } 

そして、あなたをおそらくあなたのビューは次のようなものになります:

<?php echo $form->create('User', array('action' => 'add')); ?> 
<?php echo $form->input("username", array('label' => 'Username')) ?> 
<?php echo $form->input("password",array("type"=>"password", 'label' => 'password')) ?> 
<?php echo $form->submit('Submit'); ?> 
+0

私はあなたの方法を試しましたが、どちらもうまくいきません。私はチュートリアルに従ってログイン機能を試しましたが、同じ問題があります。ここにコードがあります。 <?php エコー 'testlogin'; echo $ this-> Form-> create(); echo 'testcreate'; echo $ this-> Form-> input( 'username'); echo $ this-> Form-> input( 'password'); echo $ this-> Form-> end( 'Login'); ?> –

+0

私はすでに最新のcakephp版にアップデートすることでこの問題を解消しました。どうもありがとう。 –

関連する問題