У меня сложная ситуация …
Я могу получить значение через $type->created_by->email
Когда дать моему методу строку ‘title’ (свойство $type
), мой код будет делать $type->$variable
(где переменная $ title
).
Это то, что я хочу: я хочу достичь email
собственность через created_by
учебный класс.
Я уже пробовала created_by->email
,
Что-то вроде created_by.email
как строковый ввод был бы хорош …
Как я могу получить свойства класса динамически?
Спасибо!
Также нет такой функциональности, доступной на уровне объекта (были попытки реализовать это [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')
Например, вы можете реализовать это в пользовательском методе в базовом классе сущностей, который расширяют все остальные ваши сущности.
Других решений пока нет …