cakePHP - 如何有条件地将组件加载到控制器中?

Owe*_*wen 4 cakephp

我正在通过http://www.webtechnick.com使用cakephp 1.3的优秀Facebook插件.这就是我现在所拥有的:

class UsersController extends AppController {
    var $name = 'Users';
    var $components = array('Facebook.Connect');

    function beforeFilter {
        $this->set('facebookUser', $this->Connect->user());
    }
}
Run Code Online (Sandbox Code Playgroud)

但我想有条件地加载Facebook.Connect组件,并在控制器中使用它 - 在sudocode中这样的东西......

if ($thisIsTrue) {
    Load_the_component_and_make_it_ready_for_use;
    $this->set('facebookUser', $this->Connect->user());
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

bit*_*wit 5

如果你在CakePHP 2.0中这样做,那真的很容易.我发现这个SO线程最初让我气馁,但它必须是1.3及更低的问题.例如:

public function beforeFilter(){
    parent::beforeFilter();
    $this->Paypal = $this->Components->load('Paypal');
}
Run Code Online (Sandbox Code Playgroud)

这就是她写的全部内容.

  • 这实际上是记录的方式:http://book.cakephp.org/2.0/en/controllers/components.html#loading-components-on-the-fly (2认同)