我正在为CakePHP Web应用程序编写安装脚本。我有一个InstallController
有6个操作:step1
,step2
,step3
等。
step1
我正在处理Config/database.php
创建。由于此文件为空且没有可用的数据源,因此我必须在public $uses = false;
中设置InstallController
。
在step2
设置Config/database.php
文件,以便我能够建立与数据源的连接。这也是必要的,因为我想在以下步骤中更新一些数据库字段。
是否可以在public $uses = false;
之后的每个后续步骤中更新step1
?
我使用CakePHP版本2.3.5
答案 0 :(得分:0)
在CakePHP 2.x模型中是延迟加载的,因此只要您的step1
操作不尝试使用模型,就可以安全地在控制器$uses
属性中声明模型,在你的代码实际使用它们之前,它们不会被构造。
但是,如果由于某种原因你实际上需要修改$uses
,那么就这样做,因为提到的模型是延迟加载的,所以你可以随时修改$uses
然后访问之后通过控制器上的魔法属性模型。
答案 1 :(得分:0)
您是否考虑过在行动中加载模型?所以,像:
<?php
App::uses('AppController', 'Controller');
class InstallController extends AppController {
public $uses = false;
public function step1() {
}
public function step2() {
$this->loadModel("Install");
$this->Install->callMethod();
}
}