2013-12-19 2 views
0

У меня есть две таблиц студент и studentdetailsданные вставить множественную таблицу в Yii

student table : 
id, 
student_id 

studentdetails : 
id, 
student_id 
name 

У меня есть один контроллер деталей студента и одна модели студента и еще студенческие детали и один вид деталей студента

Мне нужно, когда пользователь заполняет форму сведений о студенте, должна быть первая запись в таблице ученика, а ученическая таблица student_id из таблицы учеников входит в таблицу учеников в yii .

+0

так в чем проблема?) –

+0

, когда я заполняю данные studentdetails формы есть вставка в таблицу studentdeatils, но не не в студенческой таблице – nitin

+0

пожалуйста, вы можете добавить код просмотров? –

ответ

0

Я думаю, что вы столкнулись с проблемой с полем student_id.

Я надеюсь, требуется задача:, прежде чем войти студент деталь выбрать идентификатор студента из таблицы студента

Для этого замените student_id поля (первую поданное в вашей student_details формы) с выпадающим меню

 <?php 
     $list = CHtml::listData(Student::model()->findAll(array('order' => 'student_id')), 'student_id', 'student_id'); 
     // echo $form->dropDownList($model, 'student_id', $list); 
     echo CHtml::dropDownList('student_id', $model, $list); 
     ?> 

Теперь студент выберет свой идентификатор и заполнит детали.

+0

Я генерирую идентификатор студента, когда пользователь заполняет форму. – nitin

0

Почему бы вам не попробовать использовать метод afterSave в model.It будет делать довольно работу для вас

+0

Он по-прежнему не работает. У меня есть две модели для студентов и студентов. Один диспетчер детской детали. Мне нужно сохранять данные на обеих таблицах одновременно с одного контроллера. – nitin

0

Попробуйте

public function actionCreate() 
{ 
    $model = new StudentDetails; 
    $smodel = new Student; 
    // Uncomment the following line if AJAX validation is needed 
    $this->performAjaxValidation($model); 
    if(isset($_POST['StudentDetails'])) 
    { 
     $model->attributes=$_POST['StudentDetails']; 
     if($model->save()) 
     { 
     $sid = $model->id; 
     $Student = StudentDetails::model()->findByAttributes(array('id'=>$sid)); 

     $smodel->student_id = $Student->student_id; 
     $smodel->save(); 
     $this->redirect(array('view','id'=>$model->id)); 
     } 
    } 
    $this->render('create',array(
    'model'=>$model, 
    )); 
} 
+0

Спасибо для кода его рабочий – nitin

+0

@nitin, если мой ответ вам мало полезен. я был бы рад, если вы примете и попробуете мой ответ. поэтому кто-то может использовать в будущем, если они хотят сделать то же самое –

0

Keep как этот метод на модели StudentDetails.

public function afterSave() { 
     if($this->isNewRecord){ 
      $studentDetails = new StudentDetails(); 
      $studentDetails->student_id = $this->id; 
      $studentDetails->name = STUDENT_NAME ;// from Yii::app()->user->id OR $_POST or other ; 
      $studentDetails->save(); 
     } 
     return parent::afterSave(); 
    } 
Смежные вопросы