Definition

Filter::morphRelation('imageable', [FilterType::HAS_MORPH],
    Filter::morphType('*'),
);

Array/Object Structure

target
string
required
types
array,min:1
required
types.*.type
string
required
types.*.value
array
types.*.value.*
array

Any other filter

Example

$filter = [
    'target' => 'imageable',
    'type'   => '$hasMorph',
    'types'  => [
        [
            'type'  => '*',
            'value' => [],
        ],
    ],
];
$sql = Image::filter([$filter])->toRawSql();

SQL

SELECT *
FROM "images"
WHERE (
		(
			"images"."imageable_type" = 'articles'
			AND EXISTS (
				SELECT *
				FROM "articles"
				WHERE "images"."imageable_id" = "articles"."id"
				)
			)
		OR (
			"images"."imageable_type" = 'user_profiles'
			AND EXISTS (
				SELECT *
				FROM "user_profiles"
				WHERE "images"."imageable_id" = "user_profiles"."id"
				)
			)
		)

Modifiers

None available.