从下拉列表中保存数据,该下拉列表是从另一个表中获取的

时间:2015-08-06 04:11:34

标签: php mysql yii

我在使用Yii PHP Framework时遇到了一些问题。我有两个表:teacherstudent。我还有两个视图页面:teacherview.phpstudentview.php。教师姓名使用以下代码从tbl_teacher提取到studentview.php

<div class="row">
    <?php // echo $form->labelEx($model,'teacher'); ?>
        <?php
        echo $form->labelEx($model,'teacher');
        $records = Teacher::model()->findAll();
        $list=CHtml::listData(Teacher::model()->findAll(), 'id', 'name');
        echo CHtml::dropDownList('Teacher', $model,
               CHtml::listData($records,'id', 'name'),array('empty' => '(Select a name)'));?>
                  <?php echo $form->error($model,'teacher'); ?>


</div>

并尝试使用以下代码将教师姓名存储到学生表中。

public function actionStudentview()
{
    $model=new Student;
    if(isset($_POST['Student']))
    {
        $model->attributes=$_POST['Student'];
        if($model->validate())
        {


            $model->save();
            $this->redirect($this->createUrl('teacher/studentview'));

            return;
        }
    }
    $this->render('studentview',array('model'=>$model));
}

但它没有用......请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

在控制器之后     $model->attributes=$_POST['Student']; 加     $model->teacher = $_POST['Teacher'];

OR

保持您的控制器代码不变     echo $form->dropDownList($model, 'teacher'CHtml::listData($records,'id', 'name'),array('empty' => '(Select a name)'));

您可以使用任何一种解决方案。

如果您遇到任何问题,请告诉我