CakePHP - 从视图中调用组件的函数

tee*_*ink 5 cakephp

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

谢谢,
Tee

Jon*_*han 7

我建议将组件方法包装在一个帮助器中,然后使用通常的路径来访问帮助器.


dho*_*tet 6

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

App::import('Component', 'YourComponent');
$theComponent = new YourComponent();
$theComponent->yourMethod();
Run Code Online (Sandbox Code Playgroud)

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


小智 5

一切皆有可能!

零件:

    function initialize(&$controller){
        $this->controller =& $controller;
        $this->controller->set('YourComponent', new YourComponent());
    }
Run Code Online (Sandbox Code Playgroud)

视图:

<?php $YourComponent->doAction() ... ?>
Run Code Online (Sandbox Code Playgroud)