CakePHP - 从视图中调用组件的功能

时间:2010-08-10 06:09:40

标签: cakephp

如何从视图中调用组件中的函数? (ctp档案)
这样做甚至是一个好习惯吗?

谢谢,
三通

5 个答案:

答案 0 :(得分:7)

我建议将组件方法包装在帮助程序中,然后使用通常的路径来访问帮助程序。

答案 1 :(得分:6)

对于大多数组件,您可以使用以下内容:

App::import('Component', 'YourComponent');
$theComponent = new YourComponent();
$theComponent->yourMethod();

但是,组件旨在共享控制器使用的功能,因此通常应避免从视图中调用组件。

答案 2 :(得分:5)

一切皆有可能!

组件:

    function initialize(&$controller){
        $this->controller =& $controller;
        $this->controller->set('YourComponent', new YourComponent());
    }

查看:

<?php $YourComponent->doAction() ... ?>

答案 3 :(得分:0)

我认为这样做不是好习惯。想象一下设计师可以使用的视图。如果可能的话,您希望将代码保留在模型和控制器中。如果它与可重用的视图内容有关,请考虑将控制器移动到元素或帮助程序,因为这是它们的目的。

如果您提供了更多详细信息,如果您已经拥有我们可以参考的代码库,我们可以更具体地说明如何实现某些内容。

答案 4 :(得分:0)

在cakephp 3中

$config = new \Cake\Controller\ComponentRegistry();
$CustomComponent = new \App\Controller\Component\CustomComponent ($config);