У меня проблемы с расширением класса модели AR. У меня есть стол jobs
и три другие таблицы, которые имеют отношение 1 к 1 с заданиями. detailsgeoscan
, detailsseismic
, details3d
, У меня есть модель для всех 4 таблиц расширения CActiveRecord
, Я хотел бы изменить это так detailsgeoscan
продолжается jobs
, Я должен заменить линию класса следующим образом
class Detailsgeoscan extends Jobs
У меня есть проблема, как я могу получить доступ и установить поля родительской модели?
например, в настоящее время я запрашиваю jobs
затем detailsgeoscan
я хочу запросить detailsgeoscan
модели и сможете увидеть все поля jobs
стол и detailsgeoscan
и иметь возможность обновлять / создавать / удалять строки соответственно.
ОБНОВИТЬ
Как бы я переписать следующее. PROJID
находится в родительском классе.
Detailsgeoscan::model()->findAll(array("condition"=>"PROJID=".$model->PROJID));
Краткий ответ: нет.
Длинный ответ: вы можете делать то, что вам нужно (многостоловое наследование), но это настоящая боль. У вас есть настроенное тестирование? Вам это удобно? Он понадобится вам, чтобы все работало хорошо. Есть много ошибок, чтобы основные вещи работали без сбоев.
Я сделал это один раз и не буду делать это снова. Преимущества в долгосрочной перспективе не стоили головной боли и сложности, которые были связаны с этим.
Других решений пока нет …