EntityConstraintViolationListInterface.php

Same filename in other branches
  1. 9 core/lib/Drupal/Core/Entity/EntityConstraintViolationListInterface.php
  2. 8.9.x core/lib/Drupal/Core/Entity/EntityConstraintViolationListInterface.php
  3. 10 core/lib/Drupal/Core/Entity/EntityConstraintViolationListInterface.php

Namespace

Drupal\Core\Entity

File

core/lib/Drupal/Core/Entity/EntityConstraintViolationListInterface.php

View source
<?php

namespace Drupal\Core\Entity;

use Drupal\Core\Session\AccountInterface;
use Symfony\Component\Validator\ConstraintViolationListInterface;

/**
 * Interface for the result of entity validation.
 *
 * The Symfony violation list is extended with methods that allow filtering
 * violations by fields and field access. Forms leverage that to skip possibly
 * pre-existing violations that cannot be caused or fixed by the form.
 */
interface EntityConstraintViolationListInterface extends ConstraintViolationListInterface {
    
    /**
     * Gets violations flagged on entity level, not associated with any field.
     *
     * @return \Drupal\Core\Entity\EntityConstraintViolationListInterface
     *   A list of violations on the entity level.
     */
    public function getEntityViolations();
    
    /**
     * Gets the violations of the given field.
     *
     * @param string $field_name
     *   The name of the field to get violations for.
     *
     * @return \Symfony\Component\Validator\ConstraintViolationListInterface
     *   The violations of the given field.
     */
    public function getByField($field_name);
    
    /**
     * Gets the violations of the given fields.
     *
     * When violations should be displayed for a sub-set of visible fields only,
     * this method may be used to filter the set of visible violations first.
     *
     * @param string[] $field_names
     *   The names of the fields to get violations for.
     *
     * @return \Drupal\Core\Entity\EntityConstraintViolationListInterface
     *   A list of violations of the given fields.
     */
    public function getByFields(array $field_names);
    
    /**
     * Filters this violation list by the given error codes.
     *
     * Copied from Symfony parent class
     * \Symfony\Component\Validator\ConstraintViolationList.
     *
     * @param string|string[] $codes
     *   The codes to find.
     *
     * @return \Drupal\Core\Entity\EntityConstraintViolationListInterface
     *   A list of violations of the given fields.
     */
    public function findByCodes(string|array $codes) : static;
    
    /**
     * Filters this violation list by the given fields.
     *
     * The returned object just has violations attached to the provided fields.
     *
     * When violations should be displayed for a sub-set of visible fields only,
     * this method may be used to filter the set of visible violations first.
     *
     * @param string[] $field_names
     *   The names of the fields to filter violations for.
     *
     * @return $this
     */
    public function filterByFields(array $field_names);
    
    /**
     * Filters this violation list to apply for accessible fields only.
     *
     * Violations for inaccessible fields are removed so the returned object just
     * has the remaining violations.
     *
     * @param \Drupal\Core\Session\AccountInterface $account
     *   (optional) The user for which to check access, or NULL to check access
     *   for the current user. Defaults to NULL.
     *
     * @return $this
     */
    public function filterByFieldAccess(?AccountInterface $account = NULL);
    
    /**
     * Returns the names of all violated fields.
     *
     * @return string[]
     *   An array of field names.
     */
    public function getFieldNames();
    
    /**
     * The entity which has been validated.
     *
     * @return \Drupal\Core\Entity\FieldableEntityInterface
     *   The entity object.
     */
    public function getEntity();

}

Interfaces

Title Deprecated Summary
EntityConstraintViolationListInterface Interface for the result of entity validation.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.