0

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

任何人请让我知道

4

3 回答 3

0

如果您保留对控制器的引用,则可以从组件中设置视图变量。然后在您的视图中,您将该视图变量传递给元素。

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

于 2012-07-20T20:52:23.907 回答
0

如果我理解的话,你可以传入一个值数组,你需要做的就是:

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

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

希望这可以帮助。

于 2013-04-08T09:43:49.333 回答
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 } ?>

否则,您可以在此处查看此链接

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

于 2012-08-02T09:57:59.657 回答