如何将选中的数据从复选框保存到数据库
Posted
技术标签:
【中文标题】如何将选中的数据从复选框保存到数据库【英文标题】: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();
希望有人可以帮助我解决问题。我真的很感激。谢谢。
【问题讨论】:
【参考方案1】:修改此复选框列的 gridview 配置,使其可以返回模型 ID 而不是表键:
[
'class' => 'yii\grid\CheckBoxColumn',
'checkboxOptions' => function ($model, $key, $index, $column)
return ['value' => $model->id];
,
],
【讨论】:
其实点击保存按钮后,我想知道它会保存在数据库的哪个表中。或者我需要为选定的复选框数据创建另一个模型?我真的很抱歉,因为这对我来说很难@Bizley 我只能根据您提供的代码回答您,我可以看到您尝试将其保存在Events
类中设置的表格中。以上是关于如何将选中的数据从复选框保存到数据库的主要内容,如果未能解决你的问题,请参考以下文章