Použití SelectionFactory i Connection zároveň
- n.u.r.v.
- Člen | 485
Ahoj, používám nette 2.1 dev a zajímalo by mě, jak nejlépe řešit následující situaci:
v repozitáři potřebuji pracovat s DB a chtěl jsem použít Nette\Database\SelectionFactory, jenže jsem zjistil, že v tomto případě nemohu psát vlastní query a musí se tedy použít Nette\Database\Connection.
Problém je, že když použiju Connection, tak nemohu použít tento druh zápisu:
return $this->database->table('user')->where($where);
protože table() is deprecated.
Jaké je tedy nejlepší řešení, když v jednom repozitáři potřebuji někdy i napsat vlastní sql dotaz a v některých případech mi stačí $this->database->table(‚user‘)->…? Napadají mě následující 3 varianty:
1)použít connection i SelectionFactory:
private $database_connection;
private $database_SF
public function __construct(Nette\Database\SelectionFactory $databaseSF, Nette\Database\Connection $database_conection) {
$this->databaseSF = $databaseSF;
$this->database_connection = $database_connection;
}
2)v některých metodách použít SelectionFactory a v některých Connection
use Nette\Database\SelectionFactory;
use Nette\Database\Connection;
/**
* Pripravi menu.
*/
class UserRepository extends Nette\Object {
private $databaseConnection;
private $databaseSF;
public function neco1(){
$this->databaseSF = new \Nette\Database\SelectionFactory;
return $this->databaseSF->table('classroom')->where(.....
}
public function neco2(){
$this->databaseConnection = new \Nette\Database\Connection;
return $this->databaseConnection->query();...
}
3)psát vše jen pomocí vlastních dotazů
--php
private $database;
public function __construct(Nette\Database\Connection $database_conection) {
$this->database = $database_connection;
}
- jiri.pudil
- Nette Blogger | 1034
- předat si SelectionFactory a v případě potřeby Connection vytáhnout z něj
- n.u.r.v.
- Člen | 485
jiri.pudil napsal(a):
- předat si SelectionFactory a v případě potřeby Connection vytáhnout z něj
ok, díky… :-)