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

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

$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


на нижнюю строчку. Что не так ?
  • Вопрос задан
  • 123 просмотра
Решения вопроса 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 и ошибка что в нем нет такого метода.
Пока все логично кроме описания вопроса ))) Классы перепутали?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы