Problem v QS s presenterem

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

Zdravím začal jsem dělat QS a zasekl jsem se u presenteru. Konkrétně když dávam do HomepagePresenter.php toto:
public function renderDefault()

public function renderDefault()
{
    $this->template->tasks = $this->context->createTasks()
            ->where(array('done' => false))->order('created ASC');
}

Tak mi vypíše stránka error 500 přitom mám vše správně(Dělá to i když tam nahraju stažene soubory.). Když tam nechám jen toto:

public function renderDefault()
{
    $this->template->anyVariable = 'any value';
}

Tak se mi normalně zobrazi tabulka kterou jsem udělal v default.latte. Další problem je že se mi nezobrazuje laděnka tedy maslím si že by měla. V bootstrap.php mam vše defaultně nastaveno. Jednou jsem si ti našel nějake řešení když jsem si zkoušel dělat soubory .php v nette jen tak tak jsem aktivoval laděnku tak že jsem tam vložil toto:

$configurator = new Nette\Config\Configurator;

// Enable Nette Debugger for error visualisation & logging
$configurator->setProductionMode(FALSE);
$configurator->enableDebugger(__DIR__ . '/../log');

Když dam toto do bootsrap.php tak se objeví error ale laděnka tam je :D Ale nějakej error s bootstrap.php a bla bla bla kdyžtak můžu pak ukazat screen. Takže jestli by jste mi mohli pomoct :D Díky jsem z toho uplně paf :D

iqtq
Člen | 20
+
0
-

Nechybí ti v tý první ukázce nějakej model? Context ti žádný dotazy do db nepošle. Co se týče laděnky tak zkus dát do bootstrapu $container->application->catchExceptions = FALSE;

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Ad error v bootstrapu: nejlepší skutečně bude alespoň screen té laděnky poslat :).

Jinak jestli se ti zobrazuje jen error 500, doplň si do sekce nette v konfiguračním souboru:

common:
	nette:
		application:
			catchExceptions: no
t0x1c
Člen | 151
+
0
-
#
# SECURITY WARNING: it is CRITICAL that this file & directory are NOT accessible directly via a web browser!
#
# If you don't protect this directory from direct web access, anybody will be able to see your passwords.
# https://nette.org/en/security-warning
#
common:
	parameters:
		database:
			driver: mysql
			host: xx.xx.xx.xx
			dbname: xxxxxx
			user: xxxxxx
			password: xxxxxxxxxxxx

	php:
		date.timezone: Europe/Prague
		# session.save_path: "%tempDir%/sessions"
		# zlib.output_compression: yes


	nette:
		session:
			autoStart: smart

		database:
			default:
				dsn: '%database.driver%:host=%database.host%;dbname=%database.dbname%'
				user: %database.user%
				password: %database.password%


	services:
		database: @Nette\Database\Connection

		authenticator: Authenticator( @users )


	factories:
		tasks: Tasks
		users: Users
		tasklists: Tasklists


production < common:

development < common:

Config.neon

A ještě mě napadlo vam sem dat error.log

[2012-06-03 23-42-57] Nette\MemberAccessException: Call to undefined method SystemContainer::createTasks(). in /hosting/www/xxx.cz/nette/tutorial/libs/Nette/common/ObjectMixin.php:74  @  http://xxx.xxx.cz/tutorial/www/  @@  exception-2012-06-03-23-33-59-e949c2e282393152d475f9a70f799a5d.html
22
Člen | 1478
+
0
-

vojtech.dobes napsal(a):

common:
	nette:
		application:
			catchExceptions: no

nepatří sem náhodou bool hodnota? catchExceptions: FALSE

Editoval 22 (4. 6. 2012 10:03)

t0x1c
Člen | 151
+
0
-

Tady na tomhle webu to mam nepohmolo to do toho configu ani „no“ ani „FALSE“ :D

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

22 Neon umí yes a no jako validní bool hodnoty.

iqtq
Člen | 20
+
0
-

Jak jsem psal výše, tak první chybu máš podle mne v tom volání funkce createTasks přímo nad contextem, pravděpodobně by to mělo být něco jako $this->template->tasks = $this->context->tasks->createTasks()->…

A pokud si „hraješ“ na serveru, tak kromě nastavení těch catchExceptions potřebuješ ještě nastavit productionMode (tj. jako si to zkoušel $configurator->setProductionMode(FALSE);, akorát bez té omáčky okolo, tu bys v bootstrapui měl mít)

Editoval iqtq (4. 6. 2012 10:21)

t0x1c
Člen | 151
+
0
-

No nevím zkusil jsem a pořad nic. Jak říkam mam to potom z toho QS stahnute a taky nejde..

t0x1c
Člen | 151
+
0
-

Když vám zipnu celý projekt koukl by mi na to někdo prosím prosím? :) Chtěl bych pokračovat v tom QS.

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Nahrej to na Github, je to mnohem pohodlnější cesta procházení zdrojového kódu než otevírat zip :). Pokud máš teda ten projekt v gitu.

t0x1c
Člen | 151
+
0
-

Nemám :D Ale založím to a hodim vám tu odkaz :)

t0x1c
Člen | 151
+
0
-

Nepovedlo se mi to s tim githubem.. Se mi s tim nechtělo drbat se tam musi neco delat pres tu konzoli a nějak mi to nešlo až to budu potřebovat tak se na to kouknu Tady je odkaz na zipku toho projektu

t0x1c
Člen | 151
+
0
-

Už mi to jde :) http://nette.gethost.cz/…ial/new/www/ Ale nejde mi laděnka :D mam projekt z QS a ta laděnka tam nefunguje :D

JuniorJR
Člen | 181
+
0
-

To bude tim, že laděnka se defaultně zobrazí pouze na localu.

t0x1c
Člen | 151
+
0
-

Tak už i laděnku jsem aktivoval v bootstrap.php dat před enable debuger to co je v kodu

$configurator->setProductionMode(FALSE); // Toto
$configurator->enableDebugger(__DIR__ . '/../log');