Yii2从复选框列表中插入数据

Yii2从复选框列表中插入数据,yii2,checkboxlist,yii2-basic-app,Yii2,Checkboxlist,Yii2 Basic App,以我的名义: <?= GridView::widget([ 'id' => 'griditems', 'dataProvider' => $dataProvider, 'columns' => [ 'receiver_name', 'receiver_phone', 'item_price', 'shipment_price', ['class' => 'yii\grid\CheckboxColumn'], ], ]);

以我的名义:

 <?= GridView::widget([
 'id' => 'griditems',
 'dataProvider' => $dataProvider,
  'columns' => [
   'receiver_name',
   'receiver_phone',
   'item_price',
   'shipment_price',
   ['class' => 'yii\grid\CheckboxColumn'],
  ],

]); ?>

我只是试着用这种方法插入数据,但插入的数据只是列表中的最后一个或最后一个复选框。我试图打印
foreach
中的
id
,并且有多个id。

这是因为您在foreach内部的每个
save()
都重复使用相同的instace,所以您会一遍又一遍地覆盖相同的模型。您需要将
$model=new Package()
放在foreach的内部:

foreach($select as $id){
    $shipment= shipment::findOne((int)$id);
    $model = new Package();
    $model->company_id=1;
    $model->shipment_id=$shipment->id;
    $model->send_from=$shipment->send_from;
    $model->send_to=$shipment->send_to;
    $model->save(false);
}
foreach($select as $id){
    $shipment= shipment::findOne((int)$id);
    $model = new Package();
    $model->company_id=1;
    $model->shipment_id=$shipment->id;
    $model->send_from=$shipment->send_from;
    $model->send_to=$shipment->send_to;
    $model->save(false);
}