我在基于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/

10-11 14:36
查看更多