Morph Relation Filters
Has Morph
Definition
Filter::morphRelation('imageable', [FilterType::HAS_MORPH],
Filter::morphType('*'),
);
Array/Object Structure
target
string
requiredtypes
array,min:1
requiredtypes.*.type
string
requiredtypes.*.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.