在我的 CakePHP 2 应用程序中,我有这样的供应商。我需要在我的控制器类中创建此供应商类的实例。所以我将在控制器的不同功能中使用该实例。
App::import('Vendor', 'fancyVendor', array('file' => 'fancyVendor.php'));
class MyController extends AppController {
public $fancyVendor;
function beforeFilter() {
$fancyVendor = new fancyVendor();
$fancyVendor->setValue("12");
}
function showMe() {
echo $fancyVendor->getValue();
}
}
在我的里面showMe函数,我无法获取我在内部设置的值过滤前功能。有没有正确的方法来实例化它?
你需要了解scope http://php.net/manual/en/language.variables.scope.php。您已在中初始化了一个变量beforeFilter()
范围,然后尝试在showMe
范围。两者完全不同。
您可以创建一个作用范围为整个类的变量,通常称为属性...
function beforeFilter() {
$this->fancyVendor = new fancyVendor();
$this->fancyVendor->setValue("12");
}
function showMe() {
echo $this->fancyVendor->getValue();
}
另一点需要注意的是,您可以使用App::uses()
方法来加载类。根据你的命名,它会起作用。 (类是这样延迟加载的)
App::uses('fancyVendor', 'Vendor');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)