在我的Yii2中,我有表格和关系设置。
表格列表:
现在我想向用户显示属于该用户的产品。我能够做到这一点。
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()函数时,它会按预期显示,但在网格视图中它不会相应显示。
谢谢
答案 0 :(得分:0)
问题可能是"返回"在foreach循环中调用语句。 Gridview列值需要一次返回。尝试将循环内的值包含在内或作为字符串追加,并在循环后返回内爆字符串。这可能是问题所在。