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 –