将联接表数据获取到Yii2 gridview中
我有3个表,基本上需要在单个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
- 财产
- 销售(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