0

私はこのようなものを持っています:

コントローラ。

public function add() {
        $this->layout = 'home';
        $this->Session->destroy();

        if ($this->request->is('post')) {
                $this->Session->setFlash(__('xxx', true));

        }
    }

見る。home.ctp

<div id="container">
        <div id="header">
        </div>
        <div id="content">

            <?php echo $this->fetch('content'); ?>
        </div>

        <div id="footer">
            <?php echo $this->Session->flash(); ?>
        </div>
</div>

私の質問は、フラッシュメッセージがフッターに表示されないのはなぜですか?さて、私が欲しいのはフォームの下にメッセージを表示することですが、問題を単純化するために、このコードではメッセージも上部に表示されます。ただし、フッターに含める必要があります。また、削除した場合

 <?php echo $this->Session->flash(); ?>

メッセージはページの上部にも表示されます。

では、どうすればこのフラッシュメッセージの位置を変更できますか?

編集:

<?php var_dump($this->fetch('content')); ?>

出力:

string '<div id="flashMessage" class="message"> The user xxxxx</div>

<div class="users form">  
<form action="/cake/users/add" id="UserAddForm" method="post" accept-charset="utf-8"><div style="display:none;"><input type="hidden" name="_method" value="POST"/></div>    <fieldset>
<legend>
Add User
</legend>

<div class="input text required error"><label for="UserUsername">Username</label><input name="data[User][username]" maxlength="50" type="text" value="" id="UserUsername" class="form-er'... (length=1187)
4

2 に答える 2

1

レイアウトを「ホーム」に設定していますよね?home.ctpアンダーを作成しましたviews/layoutsか?表示するビューは、Cake()に付属しているデフォルトのレイアウトのように見えるので、お願いしますdefault.ctp

私にとって、コードはうまく調和しているように見えます。正しいレイアウトを表示していることを確認してください。

于 2012-09-09T15:44:42.057 に答える
1

削除 して<?php echo $this->Session->flash(); ?>もフラッシュメッセージが表示されません。@clapasの答えを検討する必要があると思います。

于 2012-09-09T16:01:47.457 に答える