final public function validate(): bool
    {
        // validate csrf token if required
        if ($this->_tokenRequired && !$this->_tokenOk) {
            App::$Session->getFlashBag()->add('warning', __('Hack attention: security token is wrong!'));
            return false;
        }
        // get all rules as array from method rules()
        $rules = $this->rules();
        // get default values of attributes
        $defaultAttr = $this->getAllProperties();

        // start validation: on this step class attribute values will be changed to input data if it valid
        $success = $this->runValidate($rules);

        // get not-passed validation fields as array
        $badAttributes = $this->getBadAttributes();
        // prevent warnings
        if (Any::isArray($badAttributes) && count($badAttributes) > 0) {
            foreach ($badAttributes as $attr) {
                if (Str::contains('.', $attr)) { // sounds like dot-separated array attr
                    $attrName = strstr($attr, '.', true); // get attr name
                    $attrArray = trim(strstr($attr, '.'), '.'); // get dot-based array path

                    $defaultValue = new DotData($defaultAttr); // load default attr

                    $dotData = new DotData($this->{$attrName}); // load local attr variable
                    $dotData->set($attrArray, $defaultValue->get($attr)); // set to local prop. variable default value

                    $this->{$attrName} = $dotData->export(); // export to model
                } else {
                    $this->{$attr} = $defaultAttr[$attr]; // just set ;)
                }
                // add message about wrong attribute to session holder, later display it
                $attrLabel = $attr;
                if ($this->getLabel($attr) !== null) {
                    $attrLabel = $this->getLabel($attr);
                }

                App::$Session->getFlashBag()->add('warning', __('Field "%field%" is incorrect', ['field' => $attrLabel]));
            }
        }

        return $success;
    }
final public function validate(): bool
    {
        // validate csrf token if required
        if ($this->_tokenRequired && !$this->_tokenOk) {
            App::$Session->getFlashBag()->add('warning', __('Hack attention: security token is wrong!'));
            return false;
        }
        // get all rules as array from method rules()
        $rules = $this->rules();
        // get default values of attributes
        $defaultAttr = $this->getAllProperties();

        // start validation: on this step class attribute values will be changed to input data if it valid
        $success = $this->runValidate($rules);

        // get not-passed validation fields as array
        $badAttributes = $this->getBadAttributes();
        // prevent warnings
        if (Any::isArray($badAttributes) && count($badAttributes) > 0) {
            foreach ($badAttributes as $attr) {
                if (Str::contains('.', $attr)) { // sounds like dot-separated array attr
                    $attrName = strstr($attr, '.', true); // get attr name
                    $attrArray = trim(strstr($attr, '.'), '.'); // get dot-based array path

                    $defaultValue = new DotData($defaultAttr); // load default attr

                    $dotData = new DotData($this->{$attrName}); // load local attr variable
                    $dotData->set($attrArray, $defaultValue->get($attr)); // set to local prop. variable default value

                    $this->{$attrName} = $dotData->export(); // export to model
                } else {
                    $this->{$attr} = $defaultAttr[$attr]; // just set ;)
                }
                // add message about wrong attribute to session holder, later display it
                $attrLabel = $attr;
                if ($this->getLabel($attr) !== null) {
                    $attrLabel = $this->getLabel($attr);
                }

                App::$Session->getFlashBag()->add('warning', __('Field "%field%" is incorrect', ['field' => $attrLabel]));
            }
        }

        return $success;
    }
final public function validate ( ) : bool { // validate csrf token if required if ( $ this -> _tokenRequired && ! $ this -> _tokenOk ) { App :: $ Session -> getFlashBag ( ) -> add ( 'warning' , __ ( 'Hack attention: security token is wrong!' ) ) ; return false ; } // get all rules as array from method rules() $ rules = $ this -> rules ( ) ; // get default values of attributes $ defaultAttr = $ this -> getAllProperties ( ) ; // start validation: on this step class attribute values will be changed to input data if it valid $ success = $ this -> runValidate ( $ rules ) ; // get not-passed validation fields as array $ badAttributes = $ this -> getBadAttributes ( ) ; // prevent warnings if ( Any :: isArray ( $ badAttributes ) && count ( $ badAttributes ) > 0 ) { foreach ( $ badAttributes as $ attr ) { if ( Str :: contains ( '.' , $ attr ) ) { // sounds like dot-separated array attr $ attrName = strstr ( $ attr , '.' , true ) ; // get attr name $ attrArray = trim ( strstr ( $ attr , '.' ) , '.' ) ; // get dot-based array path $ defaultValue = new DotData ( $ defaultAttr ) ; // load default attr $ dotData = new DotData ( $ this -> { $ attrName } ) ; // load local attr variable $ dotData -> set ( $ attrArray , $ defaultValue -> get ( $ attr ) ) ; // set to local prop. variable default value $ this -> { $ attrName } = $ dotData -> export ( ) ; // export to model } else { $ this -> { $ attr } = $ defaultAttr [ $ attr ] ; // just set ;) } // add message about wrong attribute to session holder, later display it $ attrLabel = $ attr ; if ( $ this -> getLabel ( $ attr ) !== null ) { $ attrLabel = $ this -> getLabel ( $ attr ) ; } App :: $ Session -> getFlashBag ( ) -> add ( 'warning' , __ ( 'Field "%field%" is incorrect' , [ 'field' => $ attrLabel ] ) ) ; } } return $ success ; }
Validate defined rules in app
@return bool
@throws SyntaxException
Validate defined rules in app