2

ユーザーコントローラーを呼び出すと、フラッシュメッセージが表示されないのはなぜですか?これが私のコードです:

AppController.php

<?php
App::uses('Controller', 'Controller');
class AppController extends Controller {
    public $helpers=array('Session');
    public $components = array('Session');
    public function beforeFilter()
    {
        parent::beforeFilter();
        $this->Session->setFlash('This flash was set in AppController::beforeFilter.');
    }
}

UsersController.php

<?php
    class UsersController extends AppController {
        public function add() {
            $this->Session->setFlash('This flash was set in UsersController::add.');
        }
    }

マイレイアウト...default.ctp

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <?php echo $this->Html->charset(); ?>
    <title>My website.</title>
    <?php
        echo $this->Html->meta('icon');
        echo $this->Html->css('cake.generic');
        echo $this->fetch('meta');
        echo $this->fetch('css');
        echo $this->fetch('script');
    ?>
</head>
<body>
    <div id="container">
        <div id="header"></div>
        <div id="content">
            <?php echo $this->Session->flash(); ?>
            <?php echo $this->fetch('content'); ?>
        </div>
        <div id="footer"></div>
    </div>
</body>
</html>

add.ctp

<p>This is the add view</p>

ページに組み込みのページコントローラを使用しています。ページコントローラを介してページに移動するたびに、正しいビューでフラッシュメッセージが正しく表示されます。しかし、/ users / addに移動すると、正しいビューは表示されますが、フラッシュメッセージは表示されません。誰もが理由を知っていますか?私はこれに何日もイライラしています。ありがとう!

4

1 に答える 1

0

で以下の変更を行いusercontrollerます。

<?php
class UsersController extends AppControlle
{

    function beforeFilter()
    {
        parent::beforeFilter();
    }

    public function add()
    {
        $this->Session->setFlash('This flash was set in UsersController::add.');
    }
}
于 2013-02-21T03:58:24.943 に答える