Отношение модели Yii2 не работает

Другие данные модели не отображаются в моем Gridview.

У меня есть 2 модели, ListForms и Lists. Я хочу отображать имя списка из Списки в виде сетки списков. Это мой код.

Модель ListForms:

class ListForms extends \yii\db\ActiveRecord{

       // relation name
        public $listname;            

    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'listForms';
    }     

  public function getListname() {   
      return $this->hasOne(Lists::classname(), ['listid' => 'listids']);                       
}

ListForms GridView:

[
 'label'=>'List Name',
 'attribute' => 'listname',
 'value' => 'listname.listname'
],

ListFormsSearch:

   public function search($params){                  
    $query = ListForms::find();
            $query->joinWith(['listname']);         
            //...           
    }

person Muhammad Shahzad    schedule 16.12.2014    source источник
comment
Что такое listid и что listids? listids похоже, может быть больше ... и мне просто любопытно, что хранится в поле   -  person Blizz    schedule 16.12.2014
comment
listid - это первичный ключ таблицы Lists, а listids - внешний ключ в таблице listForm   -  person Muhammad Shahzad    schedule 16.12.2014
comment
Хм, тогда то, что здесь упомянуто, кажется мне правильным ... Вы должны попробовать отладить или вставить случайные die() здесь и там, чтобы увидеть, что он действительно вызывает ваш search()-метод и т. Д.   -  person Blizz    schedule 16.12.2014
comment
Значение в сетке неверное. Вы должны установить отношение как $ model- ›getListName ()   -  person Fortran    schedule 16.12.2014


Ответы (1)


Удалять

public $listname;       

из модели, поскольку вы объявляете переменную в модели, она НЕ будет взята из базы данных и отображена. В основном это не будет работать во многих местах.

person Mihai P.    schedule 16.12.2014