Yii2 - filtrowanie i wyszukiwanie, dwa klucze obce do tej samej tabeli

Cześć wszystkim!

Mam w tabeli dwa klucze obce do tej samej tabeli (uzytkownik, wlasciciel) - mam oczywiście wygenerowane modele, relacje itp. Chciałbym teraz dodać GridView, gdzie będą podane te dwie kolumny. Wiem jak zrobić model wyszukiwania w sytuacji, gdy jest klucz obcy, aby działało wyszukiwanie i filtrowanie. Jednak w tym przypadku dodanie $query->joinWith powoduje oczywiście problem, że korzystamy dwa razy z tej samej tabeli.

Jak rozwiązać ten problem? Aby stworzyć GridView z dwoma kluczami obcymi z możliwością filtrowania/wyszukiwania po tych kolumnach? Oczywiście najlepiej jakby zmiany były jak najmniej inwazyjne, aby nie trzeba było edytować już napisanego kodu w innych modelach itp.

Model wyszukiwania PoemsSearch.php


namespace common\models;


use common\models\Poems;


$query = Poems::find();

$query->joinWith(['categories' , 'authors']);


$query->andFilterWhere([

          ...

            'categories.id' => $this->categories,

            'authors.id' => $this->authors_id,

...

        ]);

Model Poems(Wiersze)




namespace common\models;


public function getCategories()

{

	return $this->hasMany(Categories::className(), ['id' => 'category_id'])

	->viaTable('poems_categories', ['poems_id' => 'id']);

	

	//	$poems = Poems::findOne(22);

	//	$categories = $poems->categories;

}


public function getAuthors()

{

	return $this->hasMany(Authors::className(), ['id' => 'author_id'])

	->viaTable('poems_authors', ['poems_id' => 'id']);

	

	//	$poems = Poems::findOne(22);

	//	$authors = $poems->authors;

}

Pole w formularzu to authors_id albo categories