2016-08-08 1 views
0

다중 선택 드롭 다운 목록을 구성해야합니다. 텍스트 필드 수신기가 하나 하나 표시에, 제대로 보인다 뷰에서kartik-select2 확장명을 사용하여 다중 선택 드롭 다운 목록을 구성하는 방법

<?= $form->field($model, 'receiver_id')->widget(Select2::classname(), 
    [ 'data' => ArrayHelper::map(User::find()->all(),'id','username'), 
     'options' => 
      ['placeholder' => 'Select receivers...', 'multiple' => true], 
     'pluginOptions' => 
      [ 'tags' => true, 
       'maximumInputLength' => 10 
      ], 
    ]); 
?> 

을,하지만 난 누를 때 수신기 ID는 정수 여야 말한다 버튼을 "보내기":이 같은 시도했다. 이 문제를 어떻게 해결할 수 있습니까? 내가 select2 드롭 다운 목록을 사용하여 선택한 다른 수신기에 대한 하나의 DB 레코드를 복제해야합니다. 예를 들어 드롭 다운 목록 user1 및 user2에서 "보내기"작업이 그에 따라 두 번 작동해야합니다. '편지'라는 이름의 db 테이블에서 다른 id와 receiver_id를 가진 두 개의 동일한 레코드 여야합니다. 컨트롤러 클래스의

내 actionCreate 기능 : 미리

감사 :

public function actionCreate() 
{ 
    $model = new Letter(); 

    if ($model->load(Yii::$app->request->post())) { 

     foreach($model->receiver_id as $r_id){ 
      $save = new Letter(); 
      $save->type_id = $model->type_id; 
      $save->subject = $model->subject; 
      $save->body = $model->body; 
      $save->sender_id = $model->sender_id; 
      $save->start_date = $model->start_date; 
      $save->end_date = $model->end_date; 
      $save->receiver_id = $r_id; 
      $save->save(); 
     } 
     $model->attachment = UploadedFile::getInstance($model, 'attachment'); 
     $filename = pathinfo($model->attachment , PATHINFO_FILENAME); 
     $ext = pathinfo($model->attachment , PATHINFO_EXTENSION); 

     $newFname = $filename.'.'.$ext; 

     $path=Yii::getAlias('@webroot').'/uploads/'; 
     if(!empty($newFname)){ 
      $model->attachment->saveAs($path.$newFname); 
      $model->attachment = $newFname; 
      if($model->save()){ 
       return $this->redirect(['view', 'id' => $model->id]); 
      } 
     } 
    } 
    return $this->render('create', [ 
     'model' => $model, 
    ]); 

} 

내 IDE는 "$ 모델 -> receiver_id" "INT 유형의 배열 또는 객체, 실제를 예상"고에 말했다.

+0

'receiver_id' 속성의 규칙을 변경해야한다고 생각합니다. –

+0

무슨 규칙인가요? –

답변

-1

수신기 모델을 모델의 배열로 사용하십시오. 및

foreach($model->receiver_id as $r_id){ 
    $save = new YourModel(); 
    $save->yourProperty = $model->yourProperty; 
    .... 
    $save->receiver_id = $r_id; 
    $save->save(); 
} 
+0

이 루프를 actionCreate 메소드에 추가해야합니까? –

+0

예를 들어 actionCreate – rakhmatov

+0

수행 방법 "receiver_id를 모델의 배열로 사용"을 지정할 수 있습니까? –

관련 문제