为什么我得到"没有找到TableRegistry"在CakePhP 3.0?

时间:2015-12-08 14:02:19

标签: mysql cakephp-3.0

我有一个充满静态函数的类,我在Model /目录中调用了UtilityFunctions。但即使"使用"该类也无法访问TableRegistry :: Get。声明到位。下面是代码和错误。

namespace App\Model\Table;
use Cake\ORM\TableRegistry;
use App\Model\Entity\Device;

class UtilityFunctions {
    public static function getDevice($deviceInfo) {
        $devicesTable = TableRegistry::get('Devices'); // TableRegistry not found
        $query = $devicesTable->findByDeviceInfo($deviceInfo);
       ...
    }
}

" Class \ u0027UtilityFunctions \ TableRegistry \ u0027 not found", " /var/www/myserver/src/Model/Custom/UtilityFunctions.php",115

2 个答案:

答案 0 :(得分:8)

我知道这可能是一个非常晚的回复,但是如果您没有在代码顶部插入use Cake\ORM\TableRegistry;,则可能会出现问题。

我有同样的问题。我添加了那行代码并且工作正常

答案 1 :(得分:0)

这取决于行的顺序。如果首先放置namespace,除非您在use语句中指定\ \,否则PHP将在给定的命名空间中查找。例如

namespace App\Model\Table;
use Cake\ORM\TableRegistry;

将查找App \ Model \ Table \ Cake \ ORM \ TableRegistry,这显然是不正确的。

但这会起作用:

use Cake\ORM\TableRegistry;
namespace App\Model\Table;

namespace App\Model\Table;
use \Cake\ORM\TableRegistry;