> php教程 > PHP开发 > Yii2.0 시나리오 시나리오 적용에 대한 자세한 설명

Yii2.0 시나리오 시나리오 적용에 대한 자세한 설명

黄舟
풀어 주다: 2017-01-03 09:47:55
원래의
1617명이 탐색했습니다.

Yii2.0 시나리오 사용법:

간단한 예로 게시물 테이블에 제목, 이미지, 내용의 세 가지 필드가 있습니다. 게시물을 작성할 때 세 가지 필드를 모두 원합니다. 필수 항목이지만, 수정 시 제목 내용 2개 항목은 필수 항목으로, iamge는 입력하지 않아도 됩니다. 일반적인 상황에서는 [['title', 'content', 'image'], 'required',]이지만 변경할 때는 [['title', 'content'], 'required']만 필요합니다. 그냥 괜찮습니다. 하지만 이미지 필드가 없으면 양식을 제출할 수 없습니다. 이 문제를 해결하려면 어떻게 해야 합니까? ?

시나리오는 이 문제를 해결하는 데 도움이 될 수 있습니다. 다음은 간단한 시나리오 예입니다.

1. 먼저 Scene 클래스 이름이 시나리오()여야 한다고 모델에 정의합니다.

public function scenarios()
{
return [
'create' => ['title', 'image', 'content'],
'update' => ['title', 'content'],
];
}
로그인 후 복사

2. 자, 위와 같이 기본 설정의 일부가 완료되었습니다. 자, 이제 규칙()을 설정하고, 장면을 호출할 때

[['title', 'content'], 'required', 'on' => ['create', 'update']],
[['image'], 'required', 'on' => 'create'],
[['image'], 'image', 'enableClientValidation' => true, 'maxSize' => 1024, 'message' => '您上传的文件过大', 'on' => ['create', 'update']],

on 指定的就是场景,一个场景用字符串,多个场景用数组
로그인 후 복사

를 사용합니다. 자, 이제 모델에서 설정을 완료했습니다. in the Controller

$model = $this->findModel($id);
$model->setScenario('update'); 
//或者 $model->scenario = 'update'; 都可以
로그인 후 복사

위는 업데이트 씬을 호출한다는 의미입니다. 모든 것이 이렇게 간단합니다

위는 Yii2.0 시나리오 적용에 대한 자세한 설명입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(m.sbmmt.com)를 참고해주세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿