How to extend pivot query

My models:

member:
id| desc

organ:
id|desc

pivot:
member_id|organ_id

names:
id|member_id|name|valid_from|valid_to

(my member can have more than one name)

If show columns of members I use Controller Extending Query

 public function ListExtendQuery($query)
    {
      $memberTableName = (new Member)->getTable();
      $memberNameTableName = (new MemberName)->getTable();

      $query->addSelect($memberNameTableName.'.last_name as last_name');
      $query->addSelect($memberNameTableName.'.first_name as first_name');
      #$query->leftJoin($memberNameTableName, $memberTableName.'.id','=',$memberNameTableName.'.member_id')->whereRaw("NOW() BETWEEN $memberNameTableName.valid_from AND $memberNameTableName.valid_to");
    }

But when I use PIVOT table - it doesn’t use Controller - so I can’t extend query that way…

Hi @SledgehammerPL

You may need to extend using the relation override methods instead. For example:

public function relationExtendManageWidget($listWidget, $field, $model)
{
    $listWidget->bindEvent('list.extendQuery', function ($query) {
        $query->whereNull('deleted_at');
    });
}

I’m not sure if it is running RelationWidget. I put code in member, organ and memberorgan model, I put die() inside all of it - and nothing…

Depending on the implementation, you shouldn’t need to extend the query and just access via pivot.

pivot[clearance_level]:
    label: Clearance level

I can access to pivot’s fields. I can’t access fields related to one side of pivot