2016-06-29 4 views
0

을 저장 동작이 수행하는 유일한 작업은 slider_idimage_idNULL 인 새 테이블 행을 추가하는 것입니다. 모델이 올바르게 저장되지 않는 이유는 무엇입니까? 당신이 $model 객체 자체를 변경하지 않는Yii2 여러 모델 루프는 내가 여러 데이터를, 내 컨트롤러에서 나는이 작업을 구현했습니다 저장해야하는 테이블을했습니다 오류

$model::find()->where(['slider_id' => $id, 'image_id' => $key])->all()

를 호출 할 때

감사

답변

0

것은입니다. 여기

내 조언 당신이 호출 할 때

SlidersImages::find()->where(['slider_id' => $id, 'image_id' => $key])->all()

그래서 나중에 $model->save() 당신이 빈 속성을 가진 $model 객체를 저장하는 (만 display_order 변경) : 기본적으로 당신이 호출의 결과를 할당하려고 새로운 VAR에 ->all() 호출 한 후 작업 :

public function actionUpdateOrder($id){ 
    /*DA TESTARE*/ 
    //$result = 0; 
    $result = true; 
    $s = new Session; 
    if ($new_order = Yii::$app->request->post('order')) { 
     //$s['us_model'] = 0; 
     foreach ($new_order as $key => $value) { 
      $models = SliderImages::find()->where(['slider_id' => $id, 'image_id' => $key])->all(); 
      if (count($models)) { 
       // loop through $models and update them 
      } 
     } 
    } 

    return $result; 
+0

감사 @Ruslan 케 베스 대답, 당신의 제안과 같다하여 채택한 최종 솔루션 다음과 같습니다 : 'if ($ model = SlidersImages :: findOne ([ 'slider_id'=> $ id, 'image_id'=> $ key])) { $ model-> display_order = $ value; // $ result = ($ t = $ model-> update())? $ result + $ t : $ result; $ result = $ model-> save() && $ result; }' – MarBer