是否可以通过调用$this->element('path_to_element', $data);
或其他内容将一些数据传递给cakephp中组件内的元素?
请有人告诉我
答案 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。
希望这有帮助。