Class ExistsIn

Checks that the value provided in a field exists as the primary key of another table.

Namespace: Cake\ORM\Rule

Properties summary

  • $_fields protected
    array

    The list of fields to check

  • $_options protected
    array

    Options for the constructor

  • $_repository protected
    \Cake\ORM\Table|\Cake\ORM\Association|string

    The repository where the field will be looked for

Method Summary

Method Detail

__construct() public

__construct(mixed $fields, mixed $repository, array $options)

Constructor.

Available option for $options is 'allowNullableNulls' flag. Set to true to accept composite foreign keys where one or more nullable columns are null.

Parameters

string|array $fields

The field or fields to check existence as primary key.

\Cake\ORM\Table|\Cake\ORM\Association|string $repository

The repository where the field will be looked for, or the association name for the repository.

array $options optional

The options that modify the rules behavior. Options 'allowNullableNulls' will make the rule pass if given foreign keys are set to null. Notice: allowNullableNulls cannot pass by database columns set to NOT NULL.

__invoke() public

__invoke(\Cake\Datasource\EntityInterface $entity, array $options)

Performs the existence check

Parameters

\Cake\Datasource\EntityInterface $entity

The entity from where to extract the fields

array $options

Options passed to the check, where the repository key is required.

Returns

bool

Throws

RuntimeException
When the rule refers to an undefined association.

_fieldsAreNull() protected

_fieldsAreNull(\Cake\Datasource\EntityInterface $entity, \Cake\ORM\Table $source)

Checks whether or not the given entity fields are nullable and null.

Parameters

\Cake\Datasource\EntityInterface $entity

The entity to check.

\Cake\ORM\Table $source

The table to use schema from.

Returns

bool

Property Detail

$_fields protected

The list of fields to check

Type

array

$_options protected

Options for the constructor

Type

array

$_repository protected

The repository where the field will be looked for

Type

\Cake\ORM\Table|\Cake\ORM\Association|string

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.0/class-Cake.ORM.Rule.ExistsIn.html