出于为CMS创建动态菜单的目的,我需要能够检索给定模型的关联,并且对于每个关联模型,都需要检索以人类可理解的形式表示它的字符串。因此,例如,如果我有一个包含许多Articles
的{{1}}表,我可以通过
Hostedimages
但是,这给了我字符串$this->Articles->associations()->keys()
,而对于UI,我当然想要Hostedimages
。
我假设我可以将此字符串存储在Hosted Images
模型中的某个位置。有人知道如何实现吗?
答案 0 :(得分:1)
keys()
应该返回所有小写的名称IIRC,即hostedimages
,这就是关联集合在内部使用它们以确保唯一性的方式。
当然可以为表对象分配一个值,但是一个表可以在多个关联中使用,这样就不能很好地工作,并且表也不需要了解任何有关表示层的信息。 / p>
理想情况下,您将遵循CakePHP命名约定并使用驼峰式命名,即为关联/表HostedImages
命名,然后例如可以在关联名称上使用变形器:
$associations = $this->Articles->associations();
$readableNames = collection($associations)
->map(function (\Cake\ORM\Association $association) {
return \Cake\Utility\Inflector::humanize(
\Cake\Utility\Inflector::underscore($association->getName())
);
})
->toList();
另请参见