0

私は Cakephp にかなり慣れていないので、ここで設定が間違っているだけかもしれません。

コメントと投稿 (その他のもの) を含む簡単なブログを作成しました。

コメント コントローラー (/controllers/comments/add) に送信される投稿を表示しながら、コメントを追加できます。

私が遭遇している問題は、検証エラーがある場合、コメント /views/posts/view を追加していたビューではなく、/views/comments/add ビューに表示されることです。

これはかなり一般的なことだと思いますが、どこが間違っているのでしょうか?

4

1 に答える 1

0

コメント コントローラーの add メソッドに、別のビューをレンダリングするように依頼できます。

$this->render('/Posts/view');

しかし、もちろん、「Posts/view/」ファイルが必要とするすべてのデータが収集され、コメント コントローラーの add メソッドによって設定されていることを確認する必要があります。

代わりに、コメント フォームを AJAX 経由で送信するだけです (AJAX についてご存知ですか?)。そうすれば、ページの残りの部分を更新することなく、コメント/追加ビュー (またはその適切な部分) をレンダリングできます。

もちろん、Javascript が無効になっているユーザーは、エラーを修正するために別のページに移動する必要があります。しかし、それは頻繁に起こるべきではなく、コメントの送信が成功したら、いつでも投稿ページにリダイレクトすることができます。

あなたが CakePHP に不慣れで、AJAX を使用するつもりなら、おそらくどこかで次のようなものを使用したいと思うでしょう:

if ($this->request->is('ajax')) {
    $this->render('/Elements/ajax_comment_form');
}
// If it's not AJAX it'll fall through and show the regular comment add.ctp view
于 2012-08-15T22:33:52.100 に答える