2016-07-16 11:51:44 4438次浏览 2条回答 1 悬赏 10 金钱
<?= $form->field($model, 'content')->checkboxList(['0'=>'篮球','1'=>'足球','2'=>'羽毛球','3'=>'乒乓球']) ?>

选择多个,但保存时只保存一个,是怎么回事呢?

补充于 2016-07-16 12:44

我只想知道要手动把数组转换成字符,还是YII可以帮实现?

最佳答案

  • jerryxu0909 发布于 2016-07-17 08:25 举报

    手动。在保存之前.
    重点是如下两行代码
    $customers =Yii::$app->request->post('Customers');
    //转的成字符串1,2,3以逗号分开保存在数据库中,这里可以根据情况自行处理
    $hobby = implode(',', $customers['hobby']);
    完整如下

    if ($model->load(Yii::$app->request->post())) {
        $customers =Yii::$app->request->post('Customers');                
        $hobby = implode(',', $customers['hobby']);                
        $model->hobby = $hobby;
                    
        if ($model->save()) {
            return $this->redirect(['view', 'id' => $model->id]);     
        } else {
            return $this->render('update', [
                'model' => $model,  'items' => $items,
            ]);
    }
    .....
    
  • 回答于 2016-07-18 10:27 举报

    不建议用楼上的方法

    在模型里 写个beforeSave方法
    在beforeSave方法里去分割传过来的checkbox数组

    1 条回复
    回复于 2016-07-19 12:58 回复

    赞赞!!!!!!

您需要登录后才可以回答。登录 | 立即注册
okokad
经理

okokad

注册时间:2016-02-29
最后登录:2017-07-01
在线时长:49小时26分
  • 粉丝12
  • 金钱25
  • 威望80
  • 积分1315

热门问题