【发布时间】:2020-02-02 16:02:59
【问题描述】:
我正在开发一个应用程序,它有自己的数据库并从另一个服务(LDAP 就是这种情况,通过 API 包)获取用户信息。
假设我有一个名为Articles 的表,其中有一列user_id。没有Users 表,而是通过外部 API 检索一个用户或一组用户:
$user = LDAPConnector::getUser($user_id);
$users = LDAPConnector::getUsers([1, 2, 5, 6]);
当然,我希望从控制器内部检索数据尽可能简单,理想情况下仍然是这样的:
$articles = $this->Articles->find()->contain('Users');
foreach ($articles as $article) {
echo $article->user->getFullname();
}
我不知道如何处理这个问题。
我应该将代码放在表格对象的什么位置以允许与外部 API 集成?
另外一个问题是:如何在填充实体时尽量减少 LDAP 查询的数量?
即,首先使用单个 ->getUsers() 检索相关用户并稍后放置它们似乎要快得多,即使迭代文章并使用多个 ->getUser() 可能更简单。
【问题讨论】:
标签: cakephp ldap cakephp-3.0 data-retrieval