I think I'm seeing a bug while using advanced search with relatedTo()
. If I use a simple search, like this:
{% set param = {
order: 'RAND()',
limit: null,
search: "#{request.tags}"
} %}
It finds a tag like low confidence
without any issue. However, using the code I have below throws no errors, but returns no results:
{% set request = craft.request.getQuery() %}
{% set param = {
order: 'RAND()',
limit: null,
} %}
{% set param = craft.config.devMode or craft.config.staging
? param|merge({ group: 'testing' })
: param|merge({ group: 'verified' }) %}
{% set relatedToParam = ['and'] %}
{% if request.tags %}
{% set tagId = craft.tags.group('specialism').slug(request.tags).ids() %}
{% set relatedToParam = relatedToParam|merge([{
targetElement: tagId,
field: 'tagsSpecialism',
}]) %}
{% endif %}
{% if relatedToParam|length > 1 %}
{% set param = param|merge({ relatedTo: relatedToParam }) %}
{% endif %}
{% set users = craft.users(param) %}
I'm fairly confident it's not an issue with my code, as every other search combination is working.
Update
This is expected behaviour and requires proper hyphenated slug-path
to work properly with .slug()
in my code sample. See answer below!