Rules conditional validation

Cześć,

mam pytanie, czy udało się komuś zastosować walidację warunkową w modelu w funkcji rules() w Yii2?

Chciałbym zrobić tak, by po wyborze rodzaju rejestracji jako firma w formularzu rejestracyjnym, wymagane było wypełnienie NIP oraz nazwy firmy.

Narazie testuję najprostsze warunki (w tym przypadku niech pola nazwa firmy i nip będą wymagane, jak nazwisko będzie "b" - w rzeczywistości stosuję radio buttons):


 


class RejestracjaForm extends Model

{

    public $email;

    public $password;

    public $idTypUzytk;

    public $dataRejestr;

    public $nazwaFirmy;

    public $imie;

    public $nazwisko;

    public $nip;

    public $telKontakt;

    public $fax;

    public $ulica;

    public $nrDomu;

    public $nrLokalu;

    public $kodPocztowy;

    public $miasto;

    public $idWojewodztwo;

    public $idKraj;

    public $czyFirma;

    public $akceptReg;

      

  

    /**

     * @return array the validation rules.

     */

    public function rules()

    {

        return [

            // username and password are both required

            [['email', 'password','nazwisko','imie','telKontakt','ulica','nrDomu','kodPocztowy','miasto','idWojewodztwo', 'idKraj'], 'required','message' => 'Pole nie może być puste.'],

            // rememberMe must be a boolean value

            ['czyFirma', 'required','message' => 'Pole nie może być puste.'],

            [['nazwaFirmy, nip'],'required','whenClient' => "function (attribute, value) {

               return $('#rejestracjaform-nazwisko').val() === 'b';

             }",'message' => 'Pole nie może być puste.'],

próbowałem także samego ‘when’:


 [['nazwaFirmy, nip'],'required','when' => function ($model) {

               return $model->nazwisko == 'b';

             },'message' => 'Pole nie może być puste.'],

niestety nazwaFirmy oraz NIP nie stają się polami wymaganymi, gdy nazwisko jest ‘b’;

[size="6"][rozwiązanie]:[/size]

[‘nazwaFirmy, nip’] powinno być [‘nazwaFirmy’, ‘nip’]