Skip to content

[5.x]: Typing error when including _includes/field without element #17926

@ryssbowh

Description

@ryssbowh

What happened?

Description

craft\elements\db\ElementQuery::prepForEagerLoading(): Argument #2 ($sourceElement) must be of type craft\base\ElementInterface, null given, called in /var/www/html/vendor/craftcms/cms/src/fields/BaseRelationField.php on line 779

This was triggered by including the Craft template _includes/field with a null element :

{% set fields = craft.app.entries.getEntryTypeById(1).getFieldLayout().getCustomFields() %}
{% set field = fields|filter(f => f.handle == handle)|first %}

{% if field %}
	{% include "_includes/field" with {
		field: field,
		required: field.required,
		element: element,
	} only %}
{% endif %}

Trace :

#0 /var/www/html/vendor/craftcms/cms/src/fields/BaseRelationField.php(779): craft\elements\db\ElementQuery->prepForEagerLoading()
#1 /var/www/html/vendor/twig/twig/src/Extension/CoreExtension.php(1861): craft\fields\BaseRelationField->normalizeValue()
#2 /var/www/html/vendor/craftcms/cms/src/helpers/Template.php(148): Twig\Extension\CoreExtension::getAttribute()
#3 /var/www/html/storage/runtime/compiled_templates/ce/ced396a1738357a99f7cb71543823dc6.php(55): craft\helpers\Template::attribute()
#4 /var/www/html/vendor/twig/twig/src/Template.php(387): __TwigTemplate_439b60981d16809434267e6211637c09->doDisplay()

Steps to reproduce

  1. Include the template _includes/field with a null element and a relation field

Craft CMS version

5.8.18

PHP version

8.3

Operating system and version

No response

Database type and version

No response

Image driver and version

No response

Installed plugins and versions

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions