CakePHP:找不到FlashComponent

时间:2015-12-04 02:20:19

标签: cakephp cakephp-2.6 cakephp-2.x

我正在使用CakePHP 2.6并尝试按照简单的身份验证教程。我正在为Account使用其他模型Auth->User。在我的AppController中添加Flash组件后 - 我在所有页面上都看到了错误消息:

Error: FlashComponent could not be found.

Error: Create the class FlashComponent below in file: app\Controller\Component\FlashComponent.php

<?php
class FlashComponent extends Component {

}

现在我知道我目前在app\Controller\Component中没有FlashComponent.php文件,我应该在那里添加吗?我在教程中没有看到任何关于它的内容。

谢谢!

AppController的

    public $components = array(
    'Flash',
    'Auth' => array(
        'loginRedirect' => array(
            'controller' => 'accounts',
            'action' => 'index'
        ),
        'loginAction' => array(
            'controller' => 'accounts',
            'action' => 'login'
        ),
        'logoutRedirect' => array(
            'controller' => 'accounts',
            'action' => 'login',
        ),
        'authenticate' => array('Form' => array(
                    'userModel' => 'Account',
                    'passwordHasher' => 'Blowfish',
                     'fields' => array(
                                       'username' => 'email',
                                       'password' => 'token',
                                       )
                   )
        )
    )
);

public function beforeFilter() {
    $this->Auth->allow('index', 'view');
}

Login.ctp

<?php echo $this->Flash->render('auth'); ?>
<?php echo $this->Form->create('Account', array('action' => 'login')); ?>
<?php echo $this->Form->input('email', array('class' => 'form-control', 'type' => 'email', 'placeholder' => 'Email', 'label' => false)); ?>    
<?php echo $this->Form->input('token', array('class' => 'form-control', 'type' => 'password', 'placeholder' => 'Password', 'label' => false)); ?> 
<?php echo $this->Form->submit('Sign In', array('class' => 'btn btn-primary btn-block btn-flat')); ?>
<?php echo $this->Form->end(); ?>

2 个答案:

答案 0 :(得分:7)

在v2.7中将FlashComponent添加到CakePHP中。对于以前的版本,您需要使用SessionComponent并使用控制器中的$this->Session->flash()来设置Flash消息。

答案 1 :(得分:0)

$ this-> Session-> setFlash 如果您使用的是cakephp 2.5.3。