在CakePHP 2.1中使用$ this-> set()中的函数

时间:2012-12-08 11:38:50

标签: cakephp-2.1

我只是想知道如何使用CakePHP中的$this->set()方法来使用/定义自己的函数?我想做这样的事......

AppController.php

<?php
    function checkSetup() {
        if ($this->Auth->user('setup') == 'notcomplete') { return true; }
    }

    $this->set('isSetup', checkSetup());
?>

然后我将能够在我的视图文件中访问并调用它:

<?php if ($isSetup): ?>
You haven't setup your profile yet!
<?php endif; ?>

我已经尝试过了,但它显然不起作用,因为我得到了一个巨大的致命错误。关于我如何做到这一点的任何想法/建议?

1 个答案:

答案 0 :(得分:1)

$this->set('isSetup', checkSetup());

该行需要在某个函数内部才能被调用。大概你想要它在app控制器的beforFilter中 - 就像这样:

<?php

App::uses('Controller', 'Controller');

class AppController extends Controller {

    function beforeFilter() {
        $this->set('isSetup', checkSetup());
    }

    function checkSetup() {
        if ($this->Auth->user('setup') == 'notcomplete') { return true; }
    }

}

?>