Yii2 基础 - 如何使用模型循环显示数据表?



我正在尝试显示一个数据循环(以表格形式(,以便在父视图中显示子数据。下面是表视图的代码:

显示子数据循环

<div class="col-md-6 col-xs-12">
<div class="box">
<div class="box-header">
<h3 class="box-title">Details</h3>
</div>
<div class="box-body">
<div class="table-responsive">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th class="text-center">Code</th>
<th>Part Number</th>
<th>Quantity</th>
<th>Size</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<?php
foreach($modelsMaintenanceItem as $i => $modelMaintenanceItem)
{
?>
<tr>
<td class="text-center"><?php echo $modelMaintenanceItem->Code; ?></td>
<td class="text-center"><?php echo $modelMaintenanceItem->Part_Number; ?></td>
<td class="text-center"><?php echo $modelMaintenanceItem->Quantity; ?></td>
<td class="text-center"><?php echo $modelMaintenanceItem->Size; ?></td>
<td class="text-center"><?php echo $modelMaintenanceItem->Description; ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
</div>
</div>
</div>

函数操作视图的内部控制器,代码如下:

public function actionView($id)
{
$searchModel = new MaintenanceSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
// $model = new Maintenance();
$modelsMaintenanceItem = [new MaintenanceItem]; //pass model to be use in view page
return $this->render('view', [
'model' => $this->findModel($id),
'modelsMaintenanceItem' => $this->findModel($id),
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
// 'modelsMaintenanceItem' => (empty($modelsMaintenanceItem)) ? [new MaintenanceItem] : $modelsMaintenanceItem //pass model to be use in view page
]);
}

请帮帮我...我被困在这里。我想我需要在函数操作视图的控制器中进行一些更改,关于"模型维护项目",但我不确定我应该在那里放什么。

如果你想真正访问dataProvider模型,你应该使用
$models = $dataProvider->getModels();对于 foreach 中的 html 代码,也建议 HTML 代码的回显或使用控制结构的替代语法,例如:<?php foreach(...) : ?> ... <?php endforeach; ?>语法 例如:

<?php
$models = $dataProvider->getModels(); 
foreach($models as $i => $modelMaintenanceItem):
?>
<tr>
<td class="text-center"><?php echo $modelMaintenanceItem->Code; ?></td>
<td class="text-center"><?php echo $modelMaintenanceItem->Part_Number; ?></td>
<td class="text-center"><?php echo $modelMaintenanceItem->Quantity; ?></td>
<td class="text-center"><?php echo $modelMaintenanceItem->Size; ?></td>
<td class="text-center"><?php echo $modelMaintenanceItem->Description; ?></td>
</tr>
<?php endforeach; ?>

无论如何,在 Yii2 中显示表格的最简单方法是基于 gridview

<?php  
use yiigridGridView;
?>
...
<?php  
echo GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yiigridSerialColumn'],
'Code',
'Part_Number',
'Quantity',
'Size',                
'Description',    
],
]); ?>

最新更新