我有一个我希望所有 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/

10-09 22:59