cakephp render + afterfilter变量未设置

时间:2012-12-26 00:11:41

标签: cakephp variables render cakephp-2.1

我正在尝试在我的应用中为特定的动作名称使用渲染。 实际上,这是我在AppController :: afterFilter()

中设置的条件
    if($this->action == 'parameter') {
        $this->render('/Elements/parameter');
    }
    else if($this->action == 'datagrid') {
        $this->render('/Elements/datagrid');
    }

在我的控制器中/samples/parameter

            $this->set('model', Inflector::singularize(Inflector::camelize($this->name)));
        $this->set('controller', $this->name);
        if($parameter_id) {
            $this->set('mode', $mode);
            $this->set('parameter', $this->Sample->find('first', array('conditions' => array('Sample.id' => $parameter_id))));
        } else {
            $this->set('mode', 'add');
            $this->set('parameter', array());
        }

我知道我必须在变量的定义之后渲染,所以我使用afterFilter我不理解或错过的东西?

的相关信息: 我在Samples Controller中设置了函数

    public function afterFilter(){
        parent::afterFilter();
    }

谢谢大家!

1 个答案:

答案 0 :(得分:2)

{/ 1}}回调在渲染过程完成后被称为,因此在其中调用afterFilter()做错了。

如果要更改要渲染的视图,请在render()中执行此操作。所以做一些像

这样的事情
beforeRender()