2011-08-01 35 views
0

私は今ケーキを学んでおり、IBM's tutorialに従っています。私はケーキサイトからBlogチュートリアルを成功裏に完了しました。
私の問題Registerビューが表示されないということです。フォームを表示する代わりに、すぐにアクションが実行され、フォームのパラメータが空であるかどうかをチェックする条件が常に失敗するため、ユーザーメッセージの登録に失敗することがあります。表示が正しく表示されない


CTPファイルは、この(それはヘルパーを使用していない)のようになります。

<form action="https://stackoverflow.com/users/register" method="post"> 
<p>Please fill out the form below to register an account.</p> 
<label>Username:</label><input name="username" size="40" /> 
<label>Password:</label><input type="password" name="password" size="40" /> 
<label>Email Address:</label><input name="email" size="40" maxlength="255" /> 
<label>First Name:</label><input name="first_name" size="40" /> 
<label>Last Name:</label><input name="last_name" size="40" /> 
<input type="submit" value="register" /> 
</form> 

そしてregister()アクションは次のとおりです。

function register() { 
    if (!empty($this->params['form'])) 
    { 
     if ($this->User->save($this->params['form'])) 
     { 
      $this->flash('Your registration infomration was accepted.', '/users/register'); 
     } 
    } 
    else 
    { 
     $this->flash('There was a problem with your registration', '/users/register'); 
    } 
} 
+0

IMBチュートリアルは非常に古く、多くのもののために時代遅れになる可能性があります。 – RichardAtHome

+0

@RichardAtHome:現在、私はCakeのメインページに掲載されているものを使用しています。他のお勧めはありますか? – Shaihi

+0

CakePHPサイトのブログチュートリアルは、始めるのに最適な場所で、通常は最新バージョンのCakeで最新のものです。 http://book.cakephp.org/view/1528/Blog – RichardAtHome

答えて

1

試してみてください。

function register() { 
    if (!empty($this->data)) { 
     $this->User->create(); 
     if ($this->User->save($this->data)) { 
      $this->flash('Your registration infomration was accepted.', '/users/register'); 
     } else { 
      $this->flash('There was a problem with your registration', '/users/register'); 
     } 
    } 

} 

大きな違いは0を使用している$this->params[form]の代わりにを追加し、$this->User->create();を追加してください。また、elseステートメントはif(ユーザーが保存されている)と一緒に保存する必要があります。

+0

マジック:)それは動作します、今私は理由を理解しようとします。ありがとう! – Shaihi

+0

私は、他の主要な状態に私を殺すという事実が私を殺しているようです。私がそれを取り出すと、フォームは正確に表示されますが、もしそれを保持していれば(ifが(!empty..)になったら、結果のページはまっすぐelseステートメントになります)、新しい質問を投稿するか? – Shaihi

+1

Shazのコードにif(!empty ..)ブロックがありません。 –

関連する問題