craftcms / cms

Build bespoke content experiences with Craft.
https://craftcms.com
Other
3.28k stars 634 forks source link

[5.x]: Link fields ':notempty:' query param no longer works on Craft 5.5 #16113

Closed mmikkel closed 6 days ago

mmikkel commented 1 week ago

What happened?

Description

Since updating to Craft 5.5, element queries using :notempty: for Link field params no longer work as expected – i.e. a query like craft.entries.section('news').someLinkField(':notempty:').all() that would return entries with a value in a Link field someLinkField prior to 5.5, no longer returns any entries.

I tested this on Craft 5.4.10.1 as well, so it appears to be an unintended change in 5.5?

Steps to reproduce

  1. Create a Link field with the handle someLinkField (all settings at their defaults) and add it to an entry type's field layout
  2. Create an entry and give it a value for the Link field (I set the Link field type to "URL" and added a URL like https://www.example.com. Save the entry.
  3. Add the following query to a template:
{% set entries = craft.entries.someLinkField(':notempty:').all() %}
{% dd entries %}

Expected behavior

Passing :notempty: to a Link field query param should return entries with a value in that field.

Actual behavior

No entries are returned.

Craft CMS version

5.5.0.1

PHP version

8.2.24

Operating system and version

14.6.1 (DDEV v1.23.5)

Database type and version

MySQL 8.0.36

Image driver and version

No response

Installed plugins and versions

None

i-just commented 1 week ago

Hi, thanks for reporting! If you need to get past that quickly, you can resave the elements that use the Link field. For example: php craft resave/all --with-fields=someLinkField.

I will raise a PR for this shortly.

brandonkelly commented 3 days ago

Craft 5.5.1 is out with a fix for this. Thanks again!