카테고리 없음
[yii2] Yii2 : 비 시나리오 필드가 저장되지 않음
필살기쓰세요
2021. 2. 8. 16:07
Yii2에서 특정 시나리오에 규칙을 적용하려면 다음과 같이 규칙의 on 속성을 지정할 수 있습니다.
public function rules()
{
return [
//rule applied only in scenario 'insert2'
[['first_name','status'], 'required','on' => 'insert2'],
//rule applied in all scenarios
['email','safe'],
//rule applied only in scenario 'insert3'
[['first_name','status','email'], 'required','on' => 'insert3'],
];
}
이제 $model->scenario = "insert2"
컨트롤러에서 지정하면 first_name 및 status가 필요 하며 ['email','safe']
여기에도 규칙이 적용 되었으므로 값을 주면 이메일이 저장 됩니다.
$model->scenario = "insert3"
컨트롤러에서 지정하면 이제 first_name, status 및 email 이 필수 필드이며 규칙 ['email','safe']
도 적용됩니다.
public function scenarios() {..
여기서는 사용할 수 없습니다 .
에서 http://www.yiiframework.com/doc-2.0/guide-structure-models.html#validation-rules
-------------------에서 YII 2로드 () 문서 :
채워지는 데이터는 setAttributes ()에 의해 안전 검사를받습니다.
이제 setAttributes () 서명 :
public void setAttributes ( $values, $safeOnly = true )
여기서로 $safeOnly
설정 true
하면 안전한 속성에 대해서만 할당이 수행되어야합니다. 안전한 속성은 현재 $ scenario의 유효성 검사 규칙과 관련된 속성입니다.
따라서 email
시나리오에 포함되어야합니다.
출처
https://stackoverflow.com/questions/39920308