将联接表数据获取到Yii2 gridview中

将联接表数据获取到Yii2 gridview中,yii,yii2,Yii,Yii2,我有3个表,基本上需要在单个gridview中显示 财产 销售(FK物业编号) 销售人员(FK销售人员id、员工id) 职员 现在,一名工作人员可以是一个列表者、一个卖家,或者两者兼有,并且每次销售都可以有多个列表者或卖家。 所以表sale\u staff有一列“staff\u type”,其中可能有枚举值lister',seller` 所以gridview必须有一个类似 property street | sale price | sale date | lister | seller

我有3个表,基本上需要在单个gridview中显示

  • 财产
  • 销售(FK物业编号)
  • 销售人员(FK销售人员id、员工id)
  • 职员
现在,一名工作人员可以是一个列表者、一个卖家,或者两者兼有,并且每次销售都可以有多个列表者或卖家。 所以表
sale\u staff
有一列“staff\u type”,其中可能有枚举值
lister',
seller`

所以gridview必须有一个类似

property street | sale price | sale date | lister | seller
lister/seller字段应该能够显示简单的以逗号分隔的首字母缩写,如
MJ,AB
。此
initial
字段来自staff表,如上所述,该表通过id链接到sale_staff

我以前没有见过这种情况,所以我只是不确定如何将
sale\u类型
合并到搜索中,以便在该位置只显示列为
lister
seller
的员工

此外,如果我尝试这样的方法,只是为了看看是否有任何东西被拉回来:

'attribute' => 'saleStaff.staff_id.initials'

我在gridview中获得
(未设置)

我建立了以下关系: 销售:

销售组职员:

public function getStaff()
{
    return $this->hasOne(Staff::className(), ['id' => 'staff_id']);
}

public function getSale()
{
    return $this->hasOne(Sale::className(), ['id' => 'sale_id']);
}
如何将联接表sale_人员与sale表匹配?结构正常还是数据库不正确?我这样做是为了灵活——任何数量的员工都可以是列表者、卖家,或者两者兼而有之,例如:

property street | sale price | sale date | lister | seller
Parkers Road    |  400,000   | 22/06/2016| MJ     | MJ, AB

当然,关键问题是如何在这样一个gridview列中表示多个(未知数量)值。

您能提供Sale_Staff模型的全部内容吗?这个表的结构是什么?我已经添加了另一个hasOne代码供销售人员使用-但其余的是标准行为规则,我不想阻塞帖子:)
public function getStaff()
{
    return $this->hasOne(Staff::className(), ['id' => 'staff_id']);
}

public function getSale()
{
    return $this->hasOne(Sale::className(), ['id' => 'sale_id']);
}
property street | sale price | sale date | lister | seller
Parkers Road    |  400,000   | 22/06/2016| MJ     | MJ, AB