【问题标题】:How to save selected data from checkbox to database如何将选中的数据从复选框保存到数据库
【发布时间】:2016-11-23 11:17:58
【问题描述】:

我的问题是当我从复选框中选择数据并单击保存按钮时,我不知道它去了哪里。我需要制作另一个表还是在事件表中添加列。 这是 index.php 事件的编码。

    <?php

    use yii\helpers\Html;
    use yii\grid\GridView;

    /* @var $this yii\web\View */
    /* @var $dataProvider yii\data\ActiveDataProvider */

    $this->title = 'Events';

    $this->params['breadcrumbs'][] = $this->title;
    ?>

    <div class="events-index">

        <h1><?= Html::encode($this->title) ?></h1>
        <p>
            <?= Html::a('Create Events', ['create'], ['class' => 'btn btn- success']) ?>
        </p>
        <?= GridView::widget([
            'dataProvider' => $dataProvider,
            'columns' => [
                ['class' => 'yii\grid\SerialColumn'],


                'event_title',
                'event_date',
                'event_location:ntext',

                ['class' => 'yii\grid\ActionColumn'],
                ['class' => 'yii\grid\CheckBoxColumn'],
            ],
        ]); ?>
        <?=Html::beginForm(['events/bulk'],'post');?>

    <center><?=Html::submitButton('Save', ['class' => 'btn btn-info',]);?> </center>
    <?= Html::endForm();?> 



    </div>

这是 eventscontroller.php 中的批量操作代码。我是 yii2 的新手,所以我不知道如何编辑以下代码,以便当我在选择事件后单击保存按钮时,它将保存到数据库中。

        public function actionBulk()
       {

       $selection=(array)Yii::$app->request->post('selection');//typecasting
       foreach($selection as $id){
            $e=Events::findOne((int)$id);//make a typecasting
            //do your stuff
            $e->save();
       }
         }

希望有人可以帮助我解决问题。我真的很感激。谢谢。

【问题讨论】:

    标签: yii2 yii2-advanced-app bulk yii2-model yii2-user


    【解决方案1】:

    修改此复选框列的 gridview 配置,使其可以返回模型 ID 而不是表键:

    [
        'class' => 'yii\grid\CheckBoxColumn',
        'checkboxOptions' => function ($model, $key, $index, $column) {
            return ['value' => $model->id];
        },
    ],
    

    【讨论】:

    • 其实点击保存按钮后,我想知道它会保存在数据库的哪个表中。或者我需要为选定的复选框数据创建另一个模型?我真的很抱歉,因为这对我来说很难@Bizley
    • 我只能根据您提供的代码回答您,我可以看到您尝试将其保存在Events 类中设置的表格中。
    猜你喜欢
    • 2012-03-15
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多