Как поставить заглушку на метод со связаной моделю?

Собственно вопрос в следующем есть такой код

$sessionResourceOption->resourceOptions->getSeatsCount();

где
$sessionResourceOption - это класс SessionResourceOption;
resourceOptions - это связь с классом ResourceOptions
вот связь
public function getResourceOptions()
    {
        return $this->hasOne(ResourceOptions::className(), ['id' => 'resource_options_id']);
    }

getSeatsCount() это метод ResourceOptions

Делаю так

$this->getSeatsCount=Stub::make(new ResourceOptions(),['getSeatsCount'=2]);
$this->sessionResourceOption=Stub::make(new BookingSessionResourceOption (),'resourceOptions',$this->getSeatsCount)


Но получаю ошибку
Could not add property resourceOptions, class app\models\BookingSessionResourceOption implements __set method, and no resourceOptions property exists


на нижнюю строчку. Что не так ?
  • Вопрос задан
  • 124 просмотра
Решения вопроса 2
slo_nik
@slo_nik Куратор тега Yii
Доброе утро.
Попробуйте так
$sessionResourceOption->resourceOptions->seatsCount;

Хотя...
Покажите метод getSeatsCount() и напишите, что он выполняет.
Возможно правильней будет его сделать static и вызывать следующим способом с передачей параметра
ResourceOptions::getSeatsCount($param)
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Судя из Вашего описания метод resourceOptions есть в SessionResourceOption, но потом вдруг возникает BookingSessionResourceOption и ошибка что в нем нет такого метода.
Пока все логично кроме описания вопроса ))) Классы перепутали?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы