>  기사  >  백엔드 개발  >  yii2 규칙의 사용자 정의 확인 규칙 포커 규칙 규칙은 규칙을 구부립니다.

yii2 규칙의 사용자 정의 확인 규칙 포커 규칙 규칙은 규칙을 구부립니다.

WBOY
WBOY원래의
2016-07-29 08:53:121258검색

저자: Bailang 출처: www.manks.top/article/yii2_custom_rules

이 글의 저작권은 글쓴이에게 있으며, 재인쇄하셔도 좋습니다. 저자의 동의를 얻어야 하며 기사 페이지의 눈에 띄는 위치에 제공되어야 합니다. 원본 텍스트를 링크해 주세요. 그렇지 않으면 당사가 법적 책임을 물을 권리가 있습니다.

yii2의 강력한 기능 중 하나는 편리하면서도 안전한 Form 컴포넌트입니다. 어떤 친구들은 Yii를 한동안 사용해 본 후 TP보다 "이해하기 어렵다"고 느끼는 경우도 있습니다.

리더님이 등록 기능을 주선해주셨는데 이 분이 바이두의 다양한 좋은 폼 스타일과 바이두의 유효성 검증을 활용하시는 게 너무 안타까웠어요.

물론 더 이상 고민하지 않고 우리의 초점은 ActiveForm을 사용한 다음 사용자 정의 유효성 검사 규칙을 구현하는 방법입니다.

먼저 시나리오에 대해 이야기해 보겠습니다.

조건: ①. A와 B라는 두 개의 필드가 있습니다. ② A에는 1과 2라는 두 개의 값이 있습니다.

요구사항 예: 사용자가 선택한 A의 값이 1일 경우 B의 값을 반드시 채워야 합니다. A의 값이 2일 경우에는 B의 값을 쓰지 않아도 상관없습니다. 그 중 A가 필수입니다.

Yii2 자체 규칙을 사용하여 구현하는 방법을 살펴보겠습니다.

먼저 연관 모델에 다음 규칙을 추가합니다.

   /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['B'], 'requiredByASpecial'],
        ];
    }

그런 다음 모델에 다음 규칙을 추가합니다. 구현하면 됩니다.

   /**
     *  自定义验证B
     */
    public function requiredByASpecial($attribute, $params)
    {
        if ($this->A== 1) 
        {
            if ($this->B=== '')
                $this->addError($attribute, "B的值不可以为空.");
        }
    }

내부의 requireByASpecial 메소드는 A가 1이고 B의 값이 비어 있을 때 "B의 값은 비워둘 수 없습니다."라는 오류 메시지가 반환된다는 의미입니다.

위의 내용은 단순한 예시일 뿐이며, 구체적인 필요에 따라 적용할 수 있습니다.

위 내용은 규칙 내용을 포함하여 yii2의 사용자 정의 유효성 검사 규칙을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.