Použití SelectionFactory i Connection zároveň

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

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
+
0
-
  1. předat si SelectionFactory a v případě potřeby Connection vytáhnout z něj
n.u.r.v.
Člen | 485
+
0
-

jiri.pudil napsal(a):

  1. předat si SelectionFactory a v případě potřeby Connection vytáhnout z něj

ok, díky… :-)