我遇到了一个复杂的情况......
我可以通过$type->created_by->email
在为我的方法提供字符串'title'($type
的属性)时,我的代码将$type->$variable
(其中$ variable为title
)。
这就是我想要的:我希望通过email
课程到达created_by
属性。
我已经尝试了created_by->email
。
像created_by.email
这样的字符串输入会很好......
我如何动态获取类的属性?
谢谢!
答案 0 :(得分:1)
实体级别也没有此类功能(已尝试实施此 [1] , [2] ),这也不是PHP将支持开箱即用的东西。
通常,您必须遍历属性。您可以在表单助手的实体上下文中找到类似的内容,请参阅EntityContext::val()
以获得一些灵感。
快速解决方案是使用Hash::get()
。
// in CakePHP versions before 3.1.0 you'd have to convert
// the entity to an array first using $entity->toArray()
Hash::get($entity, 'dot.notated.path')
例如,您可以在基本实体类中的自定义方法中实现此功能,而所有其他实体都可以扩展。