src/Admin/AbstractAdmin.php
protected function attachInlineValidator()
    {
        $admin = $this;

        // add the custom inline validation option
        $metadata = $this->validator->getMetadataFor($this->getClass());

        $metadata->addConstraint(new InlineConstraint([
            'service' => $this,
            'method' => static function (ErrorElement $errorElement, $object) use ($admin) {
                /* @var \Sonata\AdminBundle\Admin\AdminInterface $admin */

                // This avoid the main validation to be cascaded to children
                // The problem occurs when a model Page has a collection of Page as property
                if ($admin->hasSubject() && spl_object_hash($object) !== spl_object_hash($admin->getSubject())) {
                    return;
                }

                $admin->validate($errorElement, $object);

                foreach ($admin->getExtensions() as $extension) {
                    $extension->validate($admin, $errorElement, $object);
                }
            },
            'serializingWarning' => true,
        ]));
    }
protected function attachInlineValidator()
    {
        $admin = $this;

        // add the custom inline validation option
        $metadata = $this->validator->getMetadataFor($this->getClass());

        $metadata->addConstraint(new InlineConstraint([
            'service' => $this,
            'method' => static function (ErrorElement $errorElement, $object) use ($admin) {
                /* @var \Sonata\AdminBundle\Admin\AdminInterface $admin */

                // This avoid the main validation to be cascaded to children
                // The problem occurs when a model Page has a collection of Page as property
                if ($admin->hasSubject() && spl_object_hash($object) !== spl_object_hash($admin->getSubject())) {
                    return;
                }

                $admin->validate($errorElement, $object);

                foreach ($admin->getExtensions() as $extension) {
                    $extension->validate($admin, $errorElement, $object);
                }
            },
            'serializingWarning' => true,
        ]));
    }
protected function attachInlineValidator ( ) { $ admin = $ this ; // add the custom inline validation option $ metadata = $ this -> validator -> getMetadataFor ( $ this -> getClass ( ) ) ; $ metadata -> addConstraint ( new InlineConstraint ( [ 'service' => $ this , 'method' => static function ( ErrorElement $ errorElement , $ object ) use ( $ admin ) { /* @var \Sonata\AdminBundle\Admin\AdminInterface $admin */ // This avoid the main validation to be cascaded to children // The problem occurs when a model Page has a collection of Page as property if ( $ admin -> hasSubject ( ) && spl_object_hash ( $ object ) !== spl_object_hash ( $ admin -> getSubject ( ) ) ) { return ; } $ admin -> validate ( $ errorElement , $ object ) ; foreach ( $ admin -> getExtensions ( ) as $ extension ) { $ extension -> validate ( $ admin , $ errorElement , $ object ) ; } } , 'serializingWarning' => true , ] ) ) ; }
Attach the inline validator to the model metadata, this must be done once per admin.
Attach the inline validator to the model metadata this must be done once per admin .