我在基于3个不同模型的3个不同gridview的一页回显中。模型没有连接。
我想使用chechbox从每个网格中收集一些特定数据,并将它们发送到相同的DB表中。
这是显示页面:
/** Operators Grid View **/
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[ 'attribute' => 'useralias',
'label' =>'Operator Name',],
[ 'class' => 'yii\grid\CheckboxColumn',],
[ 'attribute' => 'currency',
'label' =>'Operator Currency',],
['class' => 'yii\grid\ActionColumn', 'template' => '{view}'],
],
]); ?>
/** Country Grid View **/
<?= GridView::widget([
'dataProvider' => $dataProviderCountry,
'filterModel' => $searchModelCountry,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[ 'class' => 'yii\grid\CheckboxColumn',],
[ 'attribute' => 'popis',
'label' =>'Country',],
['class' => 'yii\grid\ActionColumn', 'template' => '{view}'],
],
]); ?>
/** Currency Grid View **/
<?= GridView::widget([
'dataProvider' => $dataProviderCurrency,
'filterModel' => $searchModelCurrency,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[ 'attribute' => 'currency_name',
'label' =>'Currency Name',],
[ 'class' => 'yii\grid\CheckboxColumn',],
[ 'attribute' => 'value',
'label' =>'Value',],
['class' => 'yii\grid\ActionColumn', 'template' => '{view}'],
],
]); ?>
这是来自控制器的索引功能:
public function actionIndex()
{
//RMS
$searchModel = new CardrmsSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
//Country
$searchModelCountry = new CountrySearch();
$dataProviderCountry = $searchModelCountry->search(Yii::$app->request->queryParams);
//Currency
$searchModelCurrency = new CurrencySearch();
$dataProviderCurrency = $searchModelCurrency->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
'searchModelCountry' => $searchModelCountry,
'dataProviderCountry' => $dataProviderCountry,
'searchModelCurrency' => $searchModelCurrency,
'dataProviderCurrency' => $dataProviderCurrency,
]); }
我对此一无所获,我的想法是创建一个动作来收集数据,但我不知道如何一步一步地从所有3个选中的复选框中收集数据!
请给我任何提示,怎么做?
最佳答案
首先以活动形式包装网格。比在每个网格中为复选框设置名称
[
'class' => 'yii\grid\CheckboxColumn',
'name'=>'anyname'
],
随时随地设置表单操作
<?php $form = ActiveForm::begin([
'action' => 'your-action'
]);
转储并查看该操作中的POST数据,您将获得代表每个网格所选行的ID数组。
您可以通过每个网格中复选框的名称来区分数据。
关于php - Yii2将数据从3 Gridview传递到数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37249674/