Problem v QS s presenterem
- t0x1c
- Člen | 151
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
- Vojtěch Dobeš
- Gold Partner | 1316
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
#
# 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
- iqtq
- Člen | 20
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)
- Vojtěch Dobeš
- Gold Partner | 1316
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
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
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