我需要在数据库的复选框中存储所选爱好的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为字符串,给定数组 。请任何人帮忙。
答案 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;
}