从组件cakephp发送数据到元素

时间:2012-07-20 20:39:08

标签: php cakephp cakephp-1.3

是否可以通过调用$this->element('path_to_element', $data);或其他内容将一些数据传递给cakephp中组件内的元素?

请有人告诉我

3 个答案:

答案 0 :(得分:0)

如果保留对Controller的引用,则可以从组件设置视图var。然后在视图中将视图var传递给元素。

您可以使用此处http://book.cakephp.org/1.3/view/996/Creating-Components#MVC-Class-Access-Within-Components-998中的一种方法来保存对控制器的引用,然后只需$this->ControllerReference->set('viewVarName', 'data')

答案 1 :(得分:0)

有一个更好的方法。我一直在我的所有项目中使用这个技巧。在你的项目中使用会话。让它激活。

这里是示例元素。您可以使用layout.ctp来编写会话或您的selectef控制器。我正在使用cakephp auth session.Enjoy.Hope它将解决您的问题:)

<?php if($this->Session->check('Auth.user')){ ?>

        <span id="uname_wel">Welcome <?php echo $session->read('Auth.user.username'); ?></span>

<?php } ?>

否则,您可以查看此链接here

OR 如果您从视图中加载元素,那么您可以像往常一样将数据传递给视图,然后您可以从元素页面内部加载.... 例如:$this->set('result_array',$data);

答案 2 :(得分:0)

如果我理解了,您可以传递一系列值,您需要做的就是:

echo $this->element('myelement', array(
    'myvar1' => $myvarvalue, 
    'myvar2' => $myvarvalue2));

然后在元素的代码中,您可以访问$ myvar1和$ myvar2。

希望这有帮助。