0
我有这个功能在我的控制器:如何在yii2中做一个嵌套的foreach循环?
public function actionResource()
{
$resourcegrporgs = Organization::find()->where(['groupid' => '1'])->all();
$resmembers = '';
foreach ($resourcegrporgs as $resourcegrporg) {
$resmembers = $resourcegrporg->getMembers()->all();
}
return $this->render('resource', [
'resourceMembers' => $resmembers,
'resourceGroups' => $resourcegrporgs,
]);
}
在我看来,我试图让每个组的成员如下:
<?php foreach ($resourceGroups as $resourceGroup): ?>
<section class="team">
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="col-lg-12">
<h4 class="description"><?= $resourceGroup->name ?></h4>
<div class="row pt-md">
<?php foreach ($resourceMembers as $resourceMember): ?>
<div class="col-lg-3 col-md-3 col-sm-4 col-xs-12 profile">
<div class="img-box">
<img src=<?= $resourceMember->picture ?> class="img-responsive">
<ul class="text-center">
<a href="#"><li><i class="fa fa-facebook"></i></li></a>
<a href="#"><li><i class="fa fa-twitter"></i></li></a>
<a href="#"><li><i class="fa fa-linkedin"></i></li></a>
</ul>
</div>
<h1><?= Html::a(Html::encode($resourceMember->name),['memberdetail', 'id' => $resourceMember->id]) ?></h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
<?php endforeach; ?>
</div>
</div>
</div>
</div>
</div>
</section>
<?php endforeach; ?>
这里是组织模式;
class Organization extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'organization';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['name', 'active', 'groupid'], 'required'],
[['active', 'groupid'], 'integer'],
[['lastdatemodified'], 'safe'],
[['name', 'logo', 'userid'], 'string', 'max' => 100]
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'name' => 'Name',
'logo' => 'Logo',
'active' => 'Active',
'userid' => 'Userid',
'lastdatemodified' => 'Lastdatemodified',
'groupid' => 'Groupid',
];
}
/**
* @return \yii\db\ActiveQuery
*/
public function getMembers()
{
return $this->hasMany(Member::className(), ['organizationid' => 'id']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getGroup()
{
return $this->hasOne(Group::className(), ['id' => 'groupid']);
}
}
然而,foreach
环路成员将返回在最后一组的成员,每另一组这样我的问题:
我怎样才能解决这个问题,从而使得各组单独的成员?
为什么你在你的资源操作的foreach循环?每次只是覆盖该变量。当它传递给你的观点时,它只是最后一批成员。 – Scott
是的,我注意到后来......我应该在控制器级忽略这个foreach,并在视图中使用它? –
我需要找到一种方法来获取每个组的成员......这就是为什么我首先想到了资源控制器中的foreach –