使用TableRegistry获取cakephp3中的所有记录?

时间:2015-08-22 10:35:30

标签: php cakephp-3.0

我的演示控制器(DemoController.php):

<?php

namespace App\Controller;
class DemoController extends AppController
    {
       public function users()
        {
            $this->loadmodel('registration');
            $result = $this->registration->getAllUsers();
            $this->set('user_data',$result)
        }
    }
?>

我的注册模式(registration.php):

<?php
namespace App\Model;

use Cake\ORM\TableRegistry;

class Registration extends AppModel {

    $articles = TableRegistry::get('registration');

    public function getAllUsers()
        {
            return $query = $articles->find();
        }

}
?>

我的观点:

path -- src/Template/Demo/users.ctp

但它会收到这样的错误(如下图所示) -

enter image description here

1 个答案:

答案 0 :(得分:1)

您的模型应命名为RegistrationsTable,并且位于src/Model/Table/RegistrationsTable.php。加载loadModel('Registrations')。 (它的实体应该命名为Registration。)要使用custom finder method,请将函数命名为findAllUsers,根据文档修复签名(应该使用两个参数:Query $query, array $options)并将其称为$this->Registration->find('all_users');

为什么要尝试将$articles变量初始化为注册模型中的注册模型(但在任何函数之外)?太乱了......