Volani ze statické tridy modelu

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

Ahoj,
po delší době sem se zase dostal k nette a updatoval sem na novější verzi (poslední beta), jenže co se nestalo začaly mě zlobit modely a sice
v modelu events mám

<?php

namespace Model;

use Nette\Environment;

class Events extends BaseModel
{
    public static $table = 'events';

	public static function findEvents(){
	return self::$connection->table(self::$table);
    }

a base modelu je připojení k databazi pod $connection
jenže tohle celé mi háže Call to a member function table() on a non-object a fakt už nevím co s tím, dle mého by mělo být všechno v pořádku, v předchozí verzi šlo všechno bez problému…
díky za jakoukoliv radu =)

pawouk
Člen | 172
+
0
-

Pravděpodobně jsi v předchozí verzi měl v bootstrapu inicilaizaci databáze v baseModelu, kterou tam ted nemáš, takže bych do bootstrapu přidal něco takového:

Model\BaseModel::$connection = new \Nette\Databae\Connection($container->parameters['dsn'], $container->parameters['user'], $container->parameters['password']);

(Samozřejmě musíš nastavit dns, jmeno a heslo v config.neon)

Tohle je poměrně starý způsob a raději bych ti poradil přejít na Dependeci injection, to by ovšem pravděpodobně bylo zapotřebý poměrně dost překopat aplikaci, takže tohle je určitě rychlejší…

Editoval pawouk (4. 2. 2012 18:16)

Maggot
Člen | 18
+
0
-

no prave toto mám v baseModelu =D

pawouk
Člen | 172
+
0
-

Jako co presne mas v basemodelu?

hAssassin
Člen | 293
+
0
-

Tohle ale prece do modelu nepatri, nebo kde to tam mas? Resp. kdy vlastne poprvi volas model?

Maggot
Člen | 18
+
0
-

omlouvám se myslel sem bootstrapu… nakonec sem se rozhodl že ponechám starší verzi nette… celá aplikace se mi nechce předělávat =D ale díky =)

pawouk
Člen | 172
+
0
-

Jasně, pokud aplikace funguje a nehodláš ji nějak extre rozšiřovat, není k tomu téměř žádný důvod… (nicméně podle výše zmíněného by to fungovat mělo…)