我正在使用 CakePHP 3.4
我正在构建一些使用 API 密钥的应用程序。一个键每天限制为 100 个调用,所以我使用多个键并希望循环通过它。
在我的控制器中,我正在调用模型的函数来获取 API
$api_key = $this->CustomApi->getKey();
if (!$api_key) {
$this->Flash->error(__('API key not found'));
} else {
...
}
在模型CustomApi
中,我想编写getKey()
函数来查找当天调用次数小于 100 的 Api 键。
表的列custom_api
是id
,api_key
调用记录在api_calls
列是id
、user_id
、custom_api_id
、的表中created
每次需要API的用户访问功能,都会在api_calls
表中创建一条记录,其中包含进行调用的时间和custom_api的主键。
我的问题是,如何从CustomApi
当天(即今天)调用次数少于 100 的模型中获取 Api 密钥
编辑2:我的尝试
$key = $this
->find()
->select(['CustomApi.id', 'CustomApi.api_key'])
->where(['CustomApi' => /* count is less than 100 */])
->leftJoinWith('ApiCalls', function ($q) {
return $q->where(['ApiCalls.created' => date('Y-m-d')]);
})
->group('CustomApi.id');
怎么算进去where
?