@REGETT

Должна ли работать связь в дочернем классе yii2?

Почему не цепляется связь?

class Foo extends ActiveRecord{
    ....
}

class Bar extends Foo{

    public function getOption(){
        return $this->hasOne(...);
    }
}

Попытка обратится:
var_dump($bar->option);
Возвращает:
Undefined property: app\models\Bar::$option

P.S. Забыл тег Yii2
Работа со связями: www.yiiframework.com/doc-2.0/guide-db-active-recor...
P.P.S.
Я ставлю связь в Bar и создаю его экземпляр, и связь не создается, хотя его родитель наследуется от AR
  • Вопрос задан
  • 207 просмотров
Пригласить эксперта
Ответы на вопрос 2
iiifx
@iiifx
PHP, OOP, SOLID, Yii2, Composer, PHPStorm
Возвращает:
Undefined property: app\models\Foo::$option

Все верно. Связь вы установили в Bar, а не в Foo.

Наследник получает доступ ко всем родительским реализациям. Родитель же ничего не получает от наследника.

Добавлю, что это не Yii2, это основы ОО программирования. Почитайте немножко книжек, иначе вам сложно будет с ним работать.
Ответ написан
@Mishutka2000
Cвязь формируется по атрибутам модели. Скорее всего у Вас в модели BAR атрибут ID (или что там у Вас?) не определен, по которому осуществляется связывание.
Покажите полностью код инициализации модели Bar и также что у вас в hasOne(...)
Ответ написан
Ваш ответ на вопрос

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

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