Calling AppModel function in AppController for cakephp

牧云@^-^@ 提交于 2019-12-22 05:35:15

问题


I have a function that I want all of my controllers to be able to use, so I have defined it in AppController. Now part of what this function will do has no business being in a controller and so it should be in a model, but since this is a universal operation, it only seems correct that it be in AppModel. My function looks as followed:

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;
    }

}

I simply want to be able to call an AppModel function from AppController. I have tried the following:

// I have tried several variations of this.
$this->loadModel('AppModel');
$this->AppModel->get_some_cool_data($term);

But this then complains about the lack of database table called AppModel, at which point, in AppModel I tried setting:

public $useTable = FALSE;

But that blows the whole app up so... Now I am out of ideas. Any help would be greatly appreciated.


回答1:


All your models should inherit from AppModel, so why not call $this->AnyModel->get_some_cool_data($term); instead? AppModel should be pretty much be an abstract class anyways -- you pretty much never want to instantiate it, you just use as a base class.

Also, that should be $useTable = false; not $usesTable. Remember that, again, all your models should inherit from AppModel, so all your models will end up not using the database as well, which is probably the source of your errors.




回答2:


To solve this for me, the solution that worked but I am unsatisfied with is to place these functions in the AppModel and then call them from any model like so:

$this->WhatEverModelIAmIn->the_general_function_I_need($some_argument);


来源:https://stackoverflow.com/questions/21765820/calling-appmodel-function-in-appcontroller-for-cakephp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!