Class ExistsIn

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

Namespace: Cake\ORM\Rule
Location: ORM/Rule/ExistsIn.php

Properties summary

Method Summary

Method Detail

__construct()source public

__construct( string|array $fields , object|string $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.
object|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()source 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

boolean

Throws

RuntimeException
When the rule refers to an undefined association.

_fieldsAreNull()source 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

boolean

Properties detail

$_fieldssource

protected array

The list of fields to check

$_optionssource

protected array

Options for the constructor

[]

$_repositorysource

protected Cake\Datasource\RepositoryInterface|Cake\ORM\Association

The repository where the field will be looked for

© 2005–2017 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/3.4/class-Cake.ORM.Rule.ExistsIn.html