0

我是 cakephp 新手,正在尝试自定义蛋糕应用程序。

我已经看到他们正在使用模型,而 app/models 文件夹中没有模型类文件

我认为有一个从表到模型的自动映射

我正在分享一些有用的代码行

    public $uses = array('LinkEmperorCampaignDetail','Configuration','Article');

        $this->paginate = array(
            'conditions' => $condition,
            'limit' => 10
        );

        $this->set('articles', $this->paginate('Article'));

如您所见,它使用 $uses 变量导入 Article 模型,数据库中有一个表“articles”,但 app/models 中没有文件 Article.php。我已删除缓存文件夹并禁用缓存。

我已经通过创建表“测试”检查它是否是自动的并使用了这段代码

  $test=$this->test->find('all');;
  var_dump($test);exit();

但收到此错误错误:调用非对象上的成员函数 find()

请让我知道这是怎么回事

谢谢,拉吉什

4

2 回答 2

1

将其更改为:

 $test = $this->Test->find('all');

另外,请检查cakephp 模型和数据库约定

于 2013-07-18T18:32:48.923 回答
0

模型文件是可选的

如果没有找到模型文件, Cake 将使用 AppModel 实例:

如果 CakePHP 在 /app/Model 中找不到对应的文件,它会动态地为你创建一个模型对象。

因此,对的引用this->Article将是一个实例,AppModel因为模型在$uses变量中声明,但模型文件不存在。

这并不意味着 $this->RandomModel 有效

如问题所示,引用随机模型只会产生以下错误:

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

Test这是意料之中的,因为控制器对问题中的代码中的模型一无所知。

可选的模型文件处理并不意味着您可以通过期望它作为 Controller 类属性存在来引用任何模型。$uses存在的目的是告诉控制器它需要知道哪些模型。如果仅在特定情况下需要模型,则为此目的存在loadModel :

$this->loadModel('Test');
$stuff = $this->Test->find('all');
于 2013-07-18T19:25:00.197 回答