jak připojit postgre DB k nette

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

Dobrý den,
jsem nette začátečník a zkouším se připojit k postgres databázi pomocí nette verze 2.2.6, mohl by mi někdo poradit jak a kde mám co upravit?.
jediné co jsem zatím vyčetl je nastavení konfiguračního souboru config.neon a to nasledujícím způsobem.
database:
driver: pgsql
host: localhost
port:
database: dbname
username: usrname
password: pass

bohužel dál si nevím rady a co upravit:-/

děkuji za každou nápovědu

Jan Endel
Člen | 1016
+
0
-

Pokud máš port prázdný, tak ho vůbec nevyplňuj. Co ti aplikace aktuálně hlásí, že se nepřipojí?

paulis
Člen | 4
+
0
-

no klasickou chybu 500

Server Error

We're sorry! The server encountered an internal error and was unable to complete your request. Please try again later.

error 500

a error log vypadá takto:
File: .../vendor/nette/utils/src/Utils/ObjectMixin.php:155

145:                if (PHP_VERSION_ID >= 50400) {
146:                    $rm = new \ReflectionMethod($class, $name);
147:                    $val = $rm->getClosure($_this);
148:                } else {
149:                    $val = Callback::closure($_this, $name);
150:                }
151:                return $val;
152:
153:            } else { // strict class
154:                $type = isset($methods['set' . $uname]) ? 'a write-only' : 'an undeclared';
155:                throw new MemberAccessException("Cannot read $type property $class::\$$name.");
156:            }
157:        }
158:
159:
Call stack

.../vendor/nette/utils/src/Utils/Object.php:125	source  Nette\Utils\ObjectMixin::	get (arguments)

115:
116:
117:        /**
118:         * Returns property value. Do not call directly.
119:         * @param  string  property name
120:         * @return mixed   property value
121:         * @throws MemberAccessException if the property is not defined.
122:         */
123:        public function &__get($name)
124:        {
125:            return ObjectMixin::get($this, $name);
126:        }
127:
128:
129:        /**
.../app/bootstrap.php:19	source  Nette\Object->	__get (arguments)

 9:
10:    $configurator->setTempDirectory(__DIR__ . '/../temp');
11:
12:    $configurator->createRobotLoader()
13:        ->addDirectory(__DIR__)
14:        ->register();
15:
16:    $configurator->addConfig(__DIR__ . '/config/config.neon');
17:    $configurator->addConfig(__DIR__ . '/config/config.local.neon');
18:
19:    $database = $configurator->container->params->database;
20:    $application->onStartup[] = function() use ($database) {DBModel::init($database);
21:    };
22:    $container = $configurator->createContainer();
23:
.../www/index.php:6	source  require (arguments)
Jan Endel
Člen | 1016
+
0
-

jsi vynechal to nejdůležitější a to to, co je v té laděnce napsáno tím největším písmem.

paulis
Člen | 4
+
0
-

Tak úplně nahoře je toto, ale to mi teda na problémy s databází nepřipadá:)

Nette\MemberAccessException
Cannot read an undeclared property Nette\Configurator::$container. search►

Jan Endel
Člen | 1016
+
0
-

A když tam dáš příkladové hodnoty ze sandboxu, tak ti to spadne na neexistující databázi?

David Matějka
Moderator | 6445
+
0
-

kdyz si vymyslis kod jen tak zhlavy, tak nemuze fungovat.

$database = $configurator->container->params->database;
$application->onStartup[] = function() use ($database) {DBModel::init($database);
};
$container = $configurator->createContainer();

hlaska mluvi jasne, $configurator nema zadnou property container (ani metodu getContainer).
A ten container vytvaris az o par radku nize.

Dale, ->params->database taky nemuze fungovat. Pouzij treba

$container->getByType("Nette\Database\Connection");

Dal, na dalsim radku pouzivas promennou $application, ta se tam vezme odkud?

Editoval matej21 (27. 12. 2014 10:39)

paulis
Člen | 4
+
0
-

tohle byl pokus z nějakého tutoriálu…psal jsem ze jsem začátečník,,jaký by bylo tedy ideální řešiní pro připojení do pgsql databáze?

Editoval paulis (29. 12. 2014 16:18)