在我的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 函数中,我无法获取我在 beforeFilter 函数中设置的值。有没有正确的实例化方法?
答案 0 :(得分:2)
您需要了解scope。您已在beforeFilter()
范围内初始化变量,然后尝试在showMe
范围内使用该变量。两者完全不同。
您可以创建一个范围为整个类的变量,通常称为属性...
function beforeFilter() {
$this->fancyVendor = new fancyVendor();
$this->fancyVendor->setValue("12");
}
function showMe() {
echo $this->fancyVendor->getValue();
}
需要注意的另一点是,您可以使用App::uses()
方法加载类。根据你的命名它会起作用。 (类以这种方式加载延迟)
App::uses('fancyVendor', 'Vendor');