Nette 2.1 vlastní metoda pro query
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- motorcb
- Člen | 552
Zdravim.
Používám nejnovější sestavení Nette 2.1 ve kterém si píši vlastní
SQL dotazy.
Používám třídu Repository od které dědí všechny modely:
abstract class Repository extends Nette\Object
{
public $selectionFactory;
protected $tableName;
...
protected function query( $sStmt )
{
return $this->selectionFactory->getConnection()->query( $sStmt );
}
}
Když chci v modelu vykonat vlastní dotaz:
class MyModelRepository extends Repository
{
...
$id = 5;
$data = $this->query( "select * from users where id = ? ", $id );
...
}
Jak mám napsat funkci query aby ji bylo možné volat s parametrem: "select * from users where id = ? ", $id
Takhle mi to funguje:
$this->selectionFactory->getConnection()->query( "select * from users where id = ? ", $id );
ale já bych chtěl volat: $this->query(".. = ?", $id)
- David Matějka
- Moderator | 6445
treba takhle:
protected function query( $sStmt )
{
return call_user_func_array(array($this->selectionFactory->getConnection(), 'query'), func_get_args());
}
EDIT: jo a moc se mi nelibi tahani connection ze selectionFactory, cistci bude pozadovat jak SF tak connection
Editoval matej21 (24. 7. 2013 16:19)