在非对象上查找()?

时间:2014-03-26 06:23:16

标签: cakephp cakephp-appmodel

我正在尝试访问控制器中另一个模型的find()。我正在接受

在非对象上调用成员函数find()错误

PollsController.php(控制者):

class PollsController extends AppController{
    public function add(){
        $this->set('appNames', $this->App->find('list'));
    }
}

Poll.php(型号):

class Poll extends AppModel{
    public $belongsTo = array ('App');
}

App.php(型号):

class App extends AppModel{
    public $hasMany = array('Poll');
}

注意:我也尝试了$this->Poll->App->find('list')但仍然遇到同样的错误。

3 个答案:

答案 0 :(得分:1)

应用程序是保留关键字。当我将类更改为SomethingController.php和Something.php时,一切都有效。

答案 1 :(得分:0)

如果要访问其他模型功能,则需要加载模型。几乎没有办法做到这一点。

这个只适用于控制器

$this->loadModel('App');
$this->App->find('first');

这个适用于模型和控制器

了解详情:CakeAPI: Class ClassRegistry

$appModel = ClassRegistry::init('App');
$appModel->find('first');

这个适合控制器

了解详情:CakeAPI: $uses variable in controller

//in Post Controller
public $use=array('Post','App');

答案 2 :(得分:0)

请在控制器中加载模态

public $ uses = array(" Poll");