是否可以通过调用$this->element('path_to_element', $data);
或其他方式将一些数据传递给 cakephp 中组件内的元素?
任何人请让我知道
是否可以通过调用$this->element('path_to_element', $data);
或其他方式将一些数据传递给 cakephp 中组件内的元素?
任何人请让我知道
如果您保留对控制器的引用,则可以从组件中设置视图变量。然后在您的视图中,您将该视图变量传递给元素。
您可以使用此处找到的方法之一http://book.cakephp.org/1.3/view/996/Creating-Components#MVC-Class-Access-Within-Components-998来保留对控制器的引用,然后当您需要只是$this->ControllerReference->set('viewVarName', 'data')
如果我理解的话,你可以传入一个值数组,你需要做的就是:
echo $this->element('myelement', array(
'myvar1' => $myvarvalue,
'myvar2' => $myvarvalue2));
然后在您的元素代码中,您可以访问 $myvar1 和 $myvar2。
希望这可以帮助。
有一个更好的出路。我一直在我所有的项目中使用这个技巧。在你的项目中使用会话。让它活跃起来。
在示例元素中。您可以使用 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 } ?>
否则,您可以在此处查看此链接
或者,如果您正在从视图加载元素,那么您可以像往常一样将数据传递给视图,然后您可以从元素页面内部访问......例如:$this->set('result_array',$data);