У меня есть модель с отношением, и я хочу создать новый объект типа отношений.
Пример: у человека есть компания, а у меня есть человек-объект: теперь я
хочу создать компанию-объект.
Класс объекта объекта определен в отношении, поэтому я не думаю, что мне нужно «знать» этот класс, но я должен быть в состоянии попросить объект-человек предоставить мне новый экземпляр типа Компания? Но я не знаю как.
Это, я думаю, тот же вопрос, что и Новый объект модели через ассоциацию , но я использую PHPActiveRecord , а не рубиновый.
<ч />
Причина этого: у меня есть абстрактный суперкласс person
, и двое детей имеют свои собственные отношения с типом объекта компании. Мне нужно иметь возможность создавать правильный класс в абстрактном человеке.
Обходной путь - получить его напрямую из массива static $has_one
:
$class = $this::$has_one[1]['class_name'];
$company = new $class;
жестко закодированное число можно, конечно, устранить, выполнив поиск имени ассоциации в массиве, но это все еще довольно уродливо.
Если есть кто-нибудь, кто знает, как это реализовано в Ruby и чем отличается реализация phpactiverecord, я мог бы получить оттуда некоторые идеи?
Некоторое тестирование показало, что, хотя «поиск моего имени класса в массиве» выглядит довольно странно, это никак не влияет на производительность, и при использовании он достаточно функционален.