2012-05-09 3 views
4

UserMasterController 코드 :컨트롤러에서 값을 속성 - YII에게

public function actionUpdate($id){ 

    $model=$this->loadModel($id); 

    if(isset($_POST['UserMaster'])){ 
     $model->attributes=$_POST['UserMaster']; 
     $model->attributes['emailsent'] = 'N'; 

     if($model->save()) 
      $this->redirect(array('admin')); 
    } 

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

나에게 오류를 제공 라인은 다음과 같습니다 $model->attributes['emailsent'] = 'N';

오류 : 오버로드의 간접 수정 속성 UserMaster::$attributes는 효과가 없습니다.

어떻게 속성을 변경할 수 있습니까? 가치? 그냥

답변

12

$model->emailsent='N';을 사용하여 'Y' 또는 'N'으로 설정하고 싶습니다. 그게 모든

+0

덕분에 시도 -> $ emailsent = 'N'; 그것도 일하지 않았다 .. –

+0

고마워 @ dInGd0nG !! 그것은 나를 미치게했다! – Gogol

+0

@DarshitGajjar 왜'emailsent' 속성에'$'가 있습니까? – JohnnyQ

5

그냥 내가 $ 모델을 시도하고 있었다,이 $model->setAttribute($name,$value);

+0

이 조건은 IN 조건 등을 원할 때 매우 유용합니다. 1UP – Falcon

관련 문제