Nette\Database a psaní přímo SQL kodu

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

Začal jsem s Nette, podle Quick Startu jsem pobral Nette\Database. Nicméně možnost, že v modelu budu mít vždy select celý tabulky, jako např:

<?php
  public function getObsah()
  {
    return $this->database->table('obsah');
  }
?>

a v presenteru pak budu dotaz zúžovat jako např:

<?php
  public function renderPopis($id)
  {
    $this->template->text = $this->model->getObsah()->where('id', $id);
  }
?>

asi není úplně správná. Neexistuje možnost psát přímo SQL kod někde? SQL ovládám výborně, v týhle db vrstvě tápu, a dotazy o 100 řádcích bych opravdu nechtěl dělat přes řetězení volání funkcí, jak je to v tutorialu. Pokud chci psát SQL, nemám radši přejít na dibi nebo je nějaká možnost i v Nette\Database?

duke
Člen | 650
+
0
-

Pro specifické dotazy můžeš použít metodu Nette\Database\Connection::exec.

Radimorous
Člen | 30
+
0
-

duke napsal(a):

Pro specifické dotazy můžeš použít metodu Nette\Database\Connection::exec.

Super, můžu psát přímo SQL. Myslím, že tuto metodu budu používat na všechny dotazy. :-)

hrach
Člen | 1836
+
0
-

respektive Nette\Database\Connection::query

$conn->query('SELECT * FROM table WHERE id = ?', $id);
Radimorous
Člen | 30
+
0
-

hrach napsal(a):

respektive Nette\Database\Connection::query

$conn->query('SELECT * FROM table WHERE id = ?', $id);

Funguje to výborně, díky! Jsem rád, že se nemusím učit nějakou db vrstvu a můžu takhle psát přímo všechno v sql.