Plnění rozbalovacího seznamu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Username
Člen | 36
+
0
-

Ahoj,

chtěl bych vás poprosit o pomoc. Potřeboval bych naplnit rozbalovací seznam hodnotami z tabulky, kde názvy sloupců jsou cizím klíčem, ale nemají ideální název. V šabloně se bez problému dostanu k údajům, které potřebuju, ale v presenteru, kde mám formulář se mi to nedaří.

Šablona:

{$dvojice->ref('ucastnici', 'osoba1')->prijmeni} {$dvojice->ref('ucastnici', 'osoba1')->jmeno} - {$dvojice->ref('ucastnici', 'osoba2')->prijmeni} {$dvojice->ref('ucastnici', 'osoba2')->jmeno}

Presenter:

$this->database->table('dvojice')->select('id, CONCAT(osoba1, " ", osoba2) AS "value"')->order('value ASC')->fetchPairs('id', 'value'))

Díky za pomoc

Editoval Username (10. 2. 2017 7:22)

Altimit
Člen | 82
+
0
-

Máš to blbě napsaný..

$this->database->table('dvojice')->select('id, CONCAT(osoba1.prijmeni,osoba2.prijmeni) osoby')->fetchPairs('id','osoby');

Nevím, jest-li by ti databáze vzala ‚‚‘..
zkus to poupravit

Ps. používej formátovací šablony (výše jsou značky – html, php, inline kod). Děkuji

Username
Člen | 36
+
0
-

Omlouvám se za nepoužití formátovacích značek, upravil jsem původní příspěvek. Upřesním svůj problém. Rozbalovací seznam se mi naplní hodnotami, které jsou v tabulce dvojice ve sloupci osoba1 a osoba2, ale to jsou cizí klíče do tabulky ucastnici kde bych potřeboval načíst sloupec např. prijmeni. V šabloně to podle dokumentace udělám, ale v presenteru si nevím rady.

Altimit napsal(a):

Máš to blbě napsaný..

$this->database->table('dvojice')->select('id, CONCAT(osoba1.prijmeni,osoba2.prijmeni) osoby')->fetchPairs('id','osoby');

Nevím, jest-li by ti databáze vzala ‚‚‘..
zkus to poupravit

Ps. používej formátovací šablony (výše jsou značky – html, php, inline kod). Děkuji

Mysteria
Člen | 797
+
0
-

Ty máš tabulku dvojice, kde máš sloupec osoba1 a osoba2, které odkazují na záznamy v tabulce ucastnici?

Username
Člen | 36
+
0
-

Přesně tak

Mysteria napsal(a):

Ty máš tabulku dvojice, kde máš sloupec osoba1 a osoba2, které odkazují na záznamy v tabulce ucastnici?

Mysteria
Člen | 797
+
0
-

Tak použij tohle:

$this->database->table('dvojice')
	->select('dvojice.id id, CONCAT(osoba1.jmeno, " ", osoba1.prijmeni, ", ", osoba2.jmeno, ", ", osoba2.prijmeni) osoby')
	->fetchPairs('id', 'osoby');

// array (2)
// 1 => "J1 P1, J2, P2" (9)
// 2 => "J3 P3, J4, P4" (9)

SELECT `dvojice`.`id` `id`, CONCAT(`osoba1`.`jmeno`, " ", `osoba1`.`prijmeni`, ", ",
`osoba2`.`jmeno`, ", ", `osoba2`.`prijmeni`) `osoby`
FROM `dvojice`
LEFT JOIN `ucastnici` `osoba1` ON `dvojice`.`osoba1` = `osoba1`.`id`
LEFT JOIN `ucastnici` `osoba2` ON `dvojice`.`osoba2` = `osoba2`.`id`

Editoval Mysteria (10. 2. 2017 15:53)

Username
Člen | 36
+
0
-

Paráda, mockrát díky, funguje

Mysteria napsal(a):

Tak použij tohle:

$this->database->table('dvojice')
	->select('dvojice.id id, CONCAT(osoba1.jmeno, " ", osoba1.prijmeni, ", ", osoba2.jmeno, ", ", osoba2.prijmeni) osoby')
	->fetchPairs('id', 'osoby');

// array (2)
// 1 => "J1 P1, J2, P2" (9)
// 2 => "J3 P3, J4, P4" (9)

SELECT `dvojice`.`id` `id`, CONCAT(`osoba1`.`jmeno`, " ", `osoba1`.`prijmeni`, ", ",
`osoba2`.`jmeno`, ", ", `osoba2`.`prijmeni`) `osoby`
FROM `dvojice`
LEFT JOIN `ucastnici` `osoba1` ON `dvojice`.`osoba1` = `osoba1`.`id`
LEFT JOIN `ucastnici` `osoba2` ON `dvojice`.`osoba2` = `osoba2`.`id`