如何在yii 1.13中保存数据库中所选爱好的ID

时间:2016-05-26 09:28:10

标签: php mysql yii

My Registration Page我需要在数据库的复选框中存储所选爱好的ID。首先,在我的Hobbies表中,我查看所有的爱好名称并在复选框中显示它。现在,无论选择什么爱好,它都会将爱好的ID存储在另一个表中。

这是我在 views / sample / register.php

中的代码
<div class="row">
    <?php echo $form->labelEx($model,'hobby');
    $opts = CHtml::listData(Hobbies::model()->findAll(),'hobby_id','hobby_name');
    echo $form->checkBoxList($model,'hobby',$opts, array('labelOptions'=>array('style'=>'display:inline'),'separator'=>'  '));
    echo $form->error($model,'hobby'); ?>
</div>

这是我在 controllers / SampleController.php

中的代码
if($model->validate())
        {
            $model->hobby = implode(",",$model->hobby);
            if($model->save())
            {
               $this->redirect(array('site/login'));
            }
            return;
        }

但它显示错误 PHP警告mb_strlen()期望参数1为字符串,给定数组 。请任何人帮忙。

1 个答案:

答案 0 :(得分:0)

在控制器中试用此代码

$postArr = $_POST[<FORM NAME>]; //Post data to an array
$model->hobby = implode(", ", $postArr['hobby']); //Getting details from post array
if($model->validate())
    {
        if($model->save())
        {
           $this->redirect(array('site/login'));
        }
        return;
    }