Nette\Database a LEFT JOIN
- VaKvas
- Začátečník | 111
Zdravim a prosim o pomoc,
pridelavam nejake filtry pro vyber dat u gridu a v ramci zjednoduseni potrebuji prepsat:
$database->query('SELECT c.*, k.name as client_name, b.name as branch_name
FROM contracts c
LEFT JOIN clients k ON (c.clientId=k.id)
LEFT JOIN branches b ON (c.branchId=b.id)
ORDER BY ' . $orderby . ' LIMIT ?, ?', $offset, $limit);
na
$database->table('contracts')-> .....
Rad bych pak pridaval nakonec jen ->WHERE() podle filtru, coz na query() nejde…
Hledal jsem ruzne rady zde na foru, ale bohuzel jsem to z toho nedal
dohromady
Moc diky za pomoc !
Editoval VaKvas (19. 7. 2011 10:02)
- VaKvas
- Začátečník | 111
Tak precejen to jde:
$database->table('contracts')
->select('contracts.*, clients.name as client_name, branches.name as branch_name');
je presne ono..
Jedina nevyhoda snad je, ze nazev sloupce s id propojene tabulky musi byt presne ‚tabulka_id‘
Editoval VaKvas (19. 7. 2011 13:38)
- Jan Voráček
- Člen | 90
VaKvas napsal(a):
Jedina nevyhoda snad je, ze nazev sloupce s id propojene tabulky musi byt presne ‚tabulka_id‘
Ale nemusí :) Můžeš si napsat vlastní DatabaseReflection,
kterou předáš Nette\Database\Connection
. Popřípadě můžeš
zkusit implementovat něco jako NotORM_Structure_Discovery
v NotORM.