我有3个表,我基本上需要在单个gridview中显示。
现在,工作人员可以是李斯特,卖家或两者兼而有之,每个销售可以有多个Lister或卖家。
因此,表格sale_staff
包含列' staff_type'可能的枚举值lister',
卖家。
因此gridview必须有类似
的显示property street | sale price | sale date | lister | seller
并且列表/卖家字段应该能够显示简单的首字母逗号分隔,如MJ, AB
。此initial
字段来自员工表,如上所述,该表通过ID链接到sale_staff。
我之前没有见过这种情况,所以我只是不确定如何将sale_type
合并到搜索中,以便只显示列为lister
或seller
的人员那个地方。
此外,如果我尝试这样的事情,只是为了看看有什么东西被撤回:
'attribute' => 'saleStaff.staff_id.initials'
或
'attribute' => 'saleStaff.staff'
我在gridview中得到(not set)
。
我的关系设置如下: 售:
public function getProperty()
{
return $this->hasOne(Property::className(), ['id' => 'property_id']);
}
public function getSaleStaff()
{
return $this->hasMany(SaleStaff::className(), ['sale_id' => 'id']);
}
Sale_Staff:
public function getStaff()
{
return $this->hasOne(Staff::className(), ['id' => 'staff_id']);
}
public function getSale()
{
return $this->hasOne(Sale::className(), ['id' => 'sale_id']);
}
如何将联接表sale_staff与销售表匹配?结构正常还是DB不正确?我这样做是为了灵活 - 任何数量的员工都可以是利斯特,卖家或两者兼而有之,例如:
property street | sale price | sale date | lister | seller
Parkers Road | 400,000 | 22/06/2016| MJ | MJ, AB
自然,关键问题是如何在单个gridview列中表示多个(未知数量)值。