Несколько соединений в сетке - PullRequest
0 голосов
/ 31 августа 2011

Я могу использовать объединение в сетке, но для одного поля.

У меня следующая проблема ..

У меня есть таблица, в которой два поля идентификатора ссылаются на то же поле в другой таблице.

Пример:

table1 id,name 
table2: iduser1,iduser2 (both are fk to id on table1). 

У меня есть эти значения в таблице 1

id: 1 -> name: user1 
id: 2 -> name: user2 

и в таблице2 у меня есть пара значений 1,2

iduser1: 1
iduser2: 2

Если я сделаю соединение вот так

$g->dq->join('table1','table1.id=table2.iduser1')->field('table1.name iduser1')->field('table1.name iduser2')
$g->addColumn('text','iduser1');
$g->addColumn('text','iduser2');

Результатом является имя пользователя1 дважды в сетке, но не пользователь1, пользователь2

Я проверил, чтобы добавить еще один join (), но безуспешно. Могу ли я получить некоторую помощь или, может быть, какое-то указание о том, что я делаю неправильно?

Большое спасибо

1 Ответ

0 голосов
/ 01 сентября 2011

Вы можете выполнить два соединения.

 // primary table
$grid->setSource('table1');

 // Joins all tables
$grid->dq->join('table2','table2.iduser1=table1')
      ->join('table1 user2');

 // This is how you add fields from linked table
$grid->dq->field('user2.name name2');
$grid->addColumn('text,'name2','Linked User');
...