在我的 Yii2 中,我有表格和关系设置。
表列表:
- 用户表 -> 外键是:company_id。
- Facility_table -> 外键是:company_id。
- Area_table -> 外键是:facility_id。
- productlinestable -> 外键是:product_id 和 area_id
- producttable -> 有一个不同的外键.. 与这个问题无关。
现在我想向用户展示属于该用户的产品。我能够做到这一点。
Productlines表有一个名为internal_code的字段。我想在产品索引页面中根据area_d显示这个内部代码。
问题是当我遍历数据并显示内部代码时,第一个 internal_code 被采用,其余的 internal_code 显示相同的数据。
我的代码如下。
在我的product.php模型中
public function getFacilitiesID()
{
$ids = [];
$facilityID = Facility::find()->where(['company_id' => \Yii::$app->user->identity->company_id])->all();
foreach ($facilityID as $facID){
$ids[] = $facID->facility_id;
}
return $ids;
}
public function getAreaID()
{
$ids = [];
$areaID = Area::find()->where(['facility_id' => $this->getFacilitiesID()])->all();
foreach ($areaID as $arID){
$ids[] = $arID->area_id;
}
return $ids;
}
public function getInternalCode()
{
$ids = [];
$internalCode = Productlines::find()->where(['area_id' => $this->getAreaID()])->all();
foreach ($internalCode as $intCode){
$ids[] = $intCode;
}
var_dump($ids); exit();
return $ids;
}
public function listen()
{
$model = $this->getInternalCode();
// var_dump($mod->getIntern $mod->getInternalCode();
$provider = new \yii\data\ArrayDataProvider([
'allModels' => $model,
'pagination' => [
'pageSize' => 10,
],
]);
return $provider->getModels();
}
在索引页面网格视图中,我的代码是:
[
'label' => 'Internal Code',
'format' => 'raw',
'value' => function ($data) {
$img ='';
foreach ($data->listen() as $key){
$img = $img.$key->internal_code;
}
return $img;
}
],
任何人都可以找出解决方案吗?
当我 var_dump getInternalCode() 函数时,它按预期显示,但在网格视图中它没有相应显示。
谢谢