nova-issues icon indicating copy to clipboard operation
nova-issues copied to clipboard

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

Open corporate-libraries opened this issue 1 year ago • 2 comments

  • 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

corporate-libraries avatar Aug 06 '24 09:08 corporate-libraries

Please provide full reproducing repository based on fresh installation as suggested in the bug report template (or you can refer to https://github.com/nova-issues for example)

crynobone avatar Aug 06 '24 10:08 crynobone

added link to reproduction repo

corporate-libraries avatar Aug 06 '24 12:08 corporate-libraries