【问题标题】:Yii2 model relation not workingYii2模型关系不起作用
【发布时间】:2015-02-14 11:54:01
【问题描述】:

其他模型数据未显示在我的 Gridview 中。

我有 2 个模型,ListForms 和 Lists。 我想在 listforms gridview 上显示列表名称。 这是我的代码。

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'
],

列表表单搜索:

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

【问题讨论】:

  • 什么是listid,什么是listidslistids 似乎可能有“更多...”,我只是好奇该字段中存储了什么
  • listid是Lists表的主键,listids是listForm表的外键
  • 嗯,那么这里提到的内容对我来说似乎是正确的......您应该尝试调试或偶尔插入die(),看看它实际上调用了您的search()-方法等。
  • 网格中的值不正确。您必须将关系设置为 $model->getListName()

标签: yii2 yii2-advanced-app


【解决方案1】:

删除

public $listname;       

来自模型,因为您在模型中声明了变量,所以它不会从数据库中获取并显示出来。基本上很多地方都行不通。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-25
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    相关资源
    最近更新 更多