Vrácení hodnoty z databáze do proměnné v presenteru

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

Zdravím,
mám takový menší problém, se kterým si nevím rady.

Mám v Modelu metodu:

 public function getId($mail) {
 return  $this->db->query("SELECT id FROM users WHERE mail=?", $mail)->fetch();

}

V presenteru mám poté.

$id = $this->getModel()->getId($values['mail']);

Jde o to, že v proměnné $id v presenteru ta hodnota z databáze není. Nevím totiž, jak vypadá formát dat vrácený z fetch(). Prosím o radu (bez vyžití ->show() u magic table).

Editoval Dark0ne (26. 4. 2016 13:40)

David Matějka
Moderator | 6445
+
0
-

Tam nemas return

Dark0ne
Člen | 47
+
0
-

Jasně, všiml jsem si toho, hned jak jsem to tu postnul. Když už jsem tedy toto téma otevřel, tak jsem se chtěl zeptat, jak vlastně data všeobecně z fetch() či fetchAll() vypadají a v případě, že bych třeba chtěl jen jednu hodnotu z row, jak si ho pak přiřadím do proměnné v Presenteru?

CZechBoY
Člen | 3608
+
0
-

Přijde nějakej IRow, kterej je něco jako stdClass.

$row = $model->getId('a@b.cz');
echo $row->id;
GEpic
Člen | 566
+
0
-

Dark0ne napsal(a):

Jasně, všiml jsem si toho, hned jak jsem to tu postnul. Když už jsem tedy toto téma otevřel, tak jsem se chtěl zeptat, jak vlastně data všeobecně z fetch() či fetchAll() vypadají a v případě, že bych třeba chtěl jen jednu hodnotu z row, jak si ho pak přiřadím do proměnné v Presenteru?

Toto zjistíš hned, když si projdeš úvodní tutoriál. Fetch nevrací pole, takže $radek[‚sloupec‘] nejde. Ale fetch() ti vrátí jeden záznam, a ke sloupcům můžeš přistupovat přes $radek->sloupec.

Unlink
Člen | 298
+
0
-

Alebo v tvojom prípade môžeš použiť fetchField() ktorá ti vráti priamo hodnotu prvého stĺpca (id v tvojom prípade)

CZechBoY
Člen | 3608
+
0
-

K row jde pristoupit jako k poli, ne?