У меня есть таблица, используемая для нормализации под названием Sharing
содержимое таблицы: share_id, pr_id (идентификатор записи пациента) и doctor_id
Я хочу получить pr_id под врачом
поэтому я использовал этот код …
$shareModel=Sharing::model()->findByAttributes(array('doctor_id'=>$doctor));
$share= $shareModel->pr_id;
Затем я изменил свою модель из этого:
$criteria->compare('pr_id',$this->pr_id);
в это:
$criteria->compare('pr_id',$share);
и это сработало отлично! Однако, когда я решил добавить больше записей о пациентах под одним врачом … он все равно отображал бы только одну запись, поэтому мне пришлось изменить код на этот
$shareModel=Sharing::model()->findAll(
array(
'condition'=>'doctor_id=:doctor_id',
'params' => array(':doctor_id' => $doctor)
)
);
всякий раз, когда я пытаюсь проверить его с помощью print_r ($ shareModel), я получаю содержимое, которое мне нужно, но когда я добавляю эту строку
$share= $shareModel->pr_id;
Я получаю ошибку «Попытка получить свойство необъекта».
кто-нибудь может помочь?
Вы обязательно получите ошибку, потому что findAll()
метод возвращает массив объектов.
Так должно быть:
$share = $shareModel[0]->pr_id;
Я настоятельно рекомендую вам использовать модельные отношения и dataprovider
,
Других решений пока нет …