Skip to content

Filters are duplicated for 2 morphToMany fields with same resource class and filters on pivot columns of relations #6490

@corporate-libraries

Description

@corporate-libraries
  • Laravel Version: v10.48.15
  • Nova Version: v4.34.3 (Silver Surfer)
  • PHP Version: v8.1.0
  • Database Driver & Version: MySQL v8.0
  • Operating System and Version: Debian GNU/Linux 11 (bullseye)
  • Browser type and version: Chrome 125.0.6422.141
  • Reproduction Repository: https://github.com/corporate-libraries/nova-issue-6490

Description:

I have Book resource, in which there are 2 MorphToMany fields, each with different relation but both linked to User resource.
Each of the relations have pivot columns which are filterable (timestamp columns on pivot tables).

When page is loaded, filters from one relation are duplicated to another.

From my understanding, this happens because there are 2 endpoint calls for getting each of the fields' filters ->

photo_2024-08-06_12-45-30

and the payload from the latter one overrides filters for both relations.

I guess this happens because Nova binds filters by resource (in FilterController class - Nova::resourceForKey($this->route('resource')); - it resolves as User for both relations)

This issue reproduces specifically in cases with filters on pivot columns

Metadata

Metadata

Assignees

No one assigned

    Labels

    blockedpendingIssues that are pending triage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions