Problém s Todolist (Vytvoření šablony)

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

Dobrý den,
rozhodl jsem se naučit se v Nette, tak jsem najel na tyto stránky a klikl na položku quick start. Vše šlo bez problémů až do bodu 5 (Vytvoření šablony). Když totiž zadám adresu http://localhost/…dolist/show/ tak mi to vyhodí error:
NBadRequestException #404
No route for HTTP request.

Děkuji za rady

Bertram
Člen | 75
+
0
-

V komentářích máš popsáno jak upravit bootstrap.php
A je to i v části Dokončení základní aplikace tak to vyzkoušej.

Torros
Člen | 6
+
0
-

bootstrap.php jsem již zkoušel nahradit podle návodu, ale

<?php
$router[] = new NRoute('index.php', array(
	'presenter' => 'Homepage',
	'action' => 'default',
), NRoute::ONE_WAY);

$router[] = new NRoute('<presenter>/<action>/<id>', array(
	'presenter' => 'Homepage',
	'action' => 'default',
	'id' => NULL,
));
?>

to jsem nahradil tímto:

<?php
$router[] = new Route('index.php', array(
    'presenter' => 'TodoList',
    'action' => 'show',
), Route::ONE_WAY);

$router[] = new Route('<presenter>/<action>/<id>', array(
    'presenter' => 'TodoList',
    'action' => 'show',
    'id' => NULL,
));
?>

ale nyní mi to píše Fatal Error Class ‚Route‘ not found

Editoval Torros (6. 11. 2010 12:35)

HanziQ
Člen | 16
+
0
-

Pravděpodobně používáš prefixovanou verzi (musíš použít NRoute) nebo verzi pro PHP 5.3 (pak by to bylo Nette\Application\Route)

RadH
Člen | 23
+
0
-

Ta změna routy tam vůbec nemusí být, to ti pouze provede přesměrování zpět na document_root, pokud zadáš document_root/todolist/show (301 Moved Permanently).

Vyjímka No route for HTTP request se provede pokud router nenamapuje HTTP request na PresenterRequest object.

Torros
Člen | 6
+
0
-

zkusil jsem tedy

new Route

nahradit tímto

new NRoute

bohužel nyní to píše error Class ‚Route‘ not found zkusil jsem tedy jiný návod, vzal jsem složku s nette a dal ji do složky třeba pokus. Pak jsem zde vytvořil soubor index.php ve tvaru

<?php
require 'Nette/loader.php';
echo Framework::VERSION;
?>

bohužel i toto mi píše error Fatal error: Class ‚Framework‘ not found in C:\Program Files\VertrigoServ\www\framework\index.php on line 3

natlaid
Člen | 18
+
0
-

Tak tady používáš, asi špatnou verzi PHP. Vyzkoušej dát nad řádek:

require 'Nette/loader.php';

Tento řádek:

use Nette\Framework;

A pak řekni, jak to dopadlo. Pokud by to pořád nefungovalo, tak zkus zjistit jakou máš PHP verzi, to by nám hodně pomohlo.

Torros
Člen | 6
+
0
-

nějak takto:
Parse error: syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRING or ‚(‘ in C:\Program Files\VertrigoServ\www\framework\index.php on line 2
jinak verzi php mám dobrou i všechno nastavení, protože když vezmu Requirements-Checker z tools, a spustím to, tak mi to píše, že mám vše ok

wise
Člen | 161
+
0
-

Jde o to jakou verzi PHP :-) Jedeš na xamppu, VertrigoServ, vlastní nebo něco jiného?

Aurielle
Člen | 1281
+
0
-

Je zcela jasné, že používáš prefixovanou verzi… takže aby ti příklad s verzí fungoval, musíš napsat echo NFramework::VERSION. To samé platí pro třídu Route, Route za NRoute jsi nahradil jen jednou, ale používáš ji vícekrát, proto ta zmíněná chyba.

bojovyletoun
Člen | 667
+
0
-

používáš IDE s našeptávačem? Zkus Netbeans+ nette plugin.

možná nejede autoloading? Zkusil bych, zda to jede se Simplerouterem.
$r[]=new (N?)SimpleRouter(„presenter“=>„Todolist“,„action“=>„show“);

warp
Člen | 26
+
0
-

Mám stejný problém jako zakladatel příspěvku, zatím postupuji přesně podle tutoriálu.

Podrobnosti: http://www.2i.cz/47834963b0

//edit: problem vyresen editaci souboru .htaccess do nasledujici podoby (stacilo pouze zaquotovat RewriteBase):

# disable directory listing
Options -Indexes

# configure PHP
# <IfModule mod_php5.c>
#    php_flag magic_quotes_gpc off
#    php_flag register_globals off
#    php_flag zend.ze1_compatibility_mode off
# </IfModule>

# mod_rewrite
<IfModule mod_rewrite.c>
	RewriteEngine On
	# RewriteBase /
	# RewriteBase /todolist/document_root/
	# front controller
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
</IfModule>

Editoval warp (8. 11. 2010 17:55)