CakePHP - 使用元素将变量从控制器传递到布局

时间:2015-05-13 20:47:30

标签: php cakephp

CakePHP版本:2.6。

我试图使用元素将变量从PostsController传递到我的布局。我想要做的是在我的标题中显示等待批准的帖子总数。

我在PostsController.php(缩写版本)中有以下代码:

function admin_validation() {

    $nbr_validate = $this->Post->find('count', array(
        'conditions' => array(
            'Post.validation = 0'
        )
    ));

    $this->set('nbr_validate', $nbr_validate);
}

我在我的布局(admin.ctp)中调用它:

<?php echo $this->element('posts-validation', array('nbr_validate' => $nbr_validate)); ?>

这是我的元素(posts-validation.ctp):

<?php echo $nbr_validate; ?>

我收到以下错误:

Notice (8): Undefined variable: nbr_validate [APP/View/Layouts/admin.ctp, line 54]

谢谢。 :)

1 个答案:

答案 0 :(得分:2)

这就是我解决这个问题的方法:

<强> AppController的:

$this->set('nbr_validate', ClassRegistry::init('Post')->find('count', 
    array(
        'conditions' => array(
            'validation = 0'
        )
    )
));

<强>元素:

<?php echo $nbr_validate; ?>

查看:

<?php echo $this->element('posts-validation', array('nbr_validate' => $nbr_validate)); ?>