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 6 months 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