2016-08-31 3 views
0

두 테이블에 데이터를 저장하고 싶습니다. 사용되는 양식은 ajax 요청이있는 ajax 양식입니다.ajax 양식에 데이터 저장 yy2

양식에서 두 개의 값 'Task_ID'와 'Employee_ID'를 가져 와서 다른 테이블에 저장하려고합니다.

컨트롤러 코드

public function actionCreate() 
{ 
    $request = Yii::$app->request; 
    $model = new Activity(); 
    $empModel = new Tasksemp(); 
    //$tasksModel = new Tasks(); 

    if($request->isAjax){ 
     /* 
     * Process for ajax request 
     */ 
     Yii::$app->response->format = Response::FORMAT_JSON; 
     if($request->isGet){ 



      return [ 
       'title'=> "Create new Activity", 
       'content'=>$this->renderAjax('create', [ 

        'model' => $model, 

        $model->finish_date = date('y-m-d'), //give default date as current along with date picker option 

        $empModel->Task_ID = $model->Task_ID, //<----Error here. The value of Task_ID and Employee_ID is null. 
        $empModel->Employee_ID = $model->Employee_ID, 
        $empModel->save(false), 

       ]), 
       'footer'=> Html::button('Close',['class'=>'btn btn-default pull-left','data-dismiss'=>"modal"]). 
          Html::button('Save',['class'=>'btn btn-primary','type'=>"submit"]) 

      ]; 





     }else if($model->load($request->post()) && $model->save()){ 
      return [ 
       'forceReload'=>'#crud-datatable-pjax', 
       'title'=> "Create new Activity", 
       'content'=>'<span class="text-success">Create Activity success</span>', 
       'footer'=> Html::button('Close',['class'=>'btn btn-default pull-left','data-dismiss'=>"modal"]). 
         Html::a('Create More',['create'],['class'=>'btn btn-primary','role'=>'modal-remote']) 

      ];   
     }else{   
      return [ 
       'title'=> "Create new Activity", 
       'content'=>$this->renderAjax('create', [ 
        'model' => $model, 
        'empModel' => $empModel, 
       ]), 
       'footer'=> Html::button('Close',['class'=>'btn btn-default pull-left','data-dismiss'=>"modal"]). 
          Html::button('Save',['class'=>'btn btn-primary','type'=>"submit"]) 

      ];   
     }   
    }else{ 
     /* 
     * Process for non-ajax request 
     */ 
     if ($model->load($request->post()) && $model->save()) { 
      return $this->redirect(['view', 'id' => $model->Activity_ID]); 
     } else { 
      return $this->render('create', [ 
       'model' => $model, 
      ]); 
     } 
    } 

} 

나는 아약스 양식을 저장 한 후 두 값을 얻기 위해 필요하거나 어쨌든 방법 내가 값을 얻을 아약스 형태로 저장할 수 아래?

도움이 될 것입니다. 고마워요

+0

는'$ 모델 -> Task_ID'과'$ 모델 -> Employee_ID' 때문에 그 라인'$ model' 비어 개까지 null입니다. 빈 모델 _ ($ model = new Activity();) _을 (를) 만들었으며 값을 설정하지 않았습니다! 나는''Task_ID '와'Employee_ID '를 폼 부분에서 얻지 못한다. 당신은 그들을 어디에서 원합니까? – leninhasda

+0

확인. Form에서 Task_ID 및 Employee_ID를 원합니다. 사용자가 새 항목을 만들고 submit을 클릭하면 양식의이 두 값을 $ empModel -> Task_ID 및 $ empModel -> Employee_ID에 저장합니다. – user2211486

답변

0

나는 잘못된 코드를 작성했다고 생각합니다. [ ... ] 내에서 "="연산자와 메서드를 수행하는 것을 엄격히 권고하지는 않습니다. 그런 다음 Activity 모델에 값을로드하지 마십시오.

if ($request->isGet){ 

    $model->finish_date = date('y-m-d'); //give default date as current along with date picker option 

    // loading values from form 

    $empModel->Task_ID  = $request->get('name_of_form_input_that_contains_Task_ID'); 
    $empModel->Employee_ID = $request->get('name_of_form_input_that_contains_Employee_ID'); 

    $empModel->save(false); 

    return [ 
     'title' => "Create new Activity", 
     'content' => $this->renderAjax('create', [ 
      'model' => $model, 
      // any other data 
     ]), 
     'footer' => '' // .. 
    ]; 

} 
+0

제안한 내용을 시도했지만 오류가 발생했습니다. : "name": "PHP 경고", "메시지": "빈 값에서 기본 객체 만들기", "코드": 2, "type": "yii \\ base \\ ErrorException" – user2211486

+0

이것은 comlete 코드가 아닙니다. 이것은 귀하의 코드의 일부일뿐입니다 ("if 문"). – IStranger

+0

예하지만 코드의 다른 부분 앞에있는 어떤 모델에도 더 이상 값을 지정하지 않습니다. 이 일을하기 위해서 내가해야 할 일은 무엇입니까? – user2211486