我有一个我希望所有 Controller 都能使用的功能,所以我已经在AppController中定义了它。现在,此函数将要执行的操作的一部分与 Controller 无关,因此应该在模型中,但是由于这是通用操作,因此在AppModel中看起来是正确的。我的功能如下所示:
class AppController extends Controller {
public function i_need_this_everywhere ($term) {
// do some stuff
// this is the line that is an issue
// it seems like this should be simple and work, but no variation of this is working
$value = $this->App->get_some_cool_data($term);
return $value;
}
}
我只是希望能够从AppController调用AppModel函数。我尝试了以下方法:
// I have tried several variations of this.
$this->loadModel('AppModel');
$this->AppModel->get_some_cool_data($term);
但这然后提示缺少名为AppModel的数据库表,这时我尝试在AppModel中设置:
public $useTable = FALSE;
但这使整个应用程序崩溃了……现在我没主意了。任何帮助将不胜感激。
最佳答案
您所有的模型都应继承自AppModel,为什么不调用$this->AnyModel->get_some_cool_data($term);
呢?无论如何,AppModel应该几乎都是抽象类-您几乎永远都不想实例化它,而只是将其用作基类。
另外,应该是$useTable = false;
而不是$usesTable
。再次记住,所有模型都应继承自AppModel,因此所有模型最终也将不使用数据库,这可能是错误的根源。
关于php - 在AppController中为cakephp调用AppModel函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21765820/