Nefunguje routování (pravděpodobně)

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

Ahoj všem :). Jsem nový v nette. Začal jsem podle tutoriálů, projížděl jsem jak klaśické zde, tak různé videotutoriály na YT.

V pořádku jsem spustil sandbox. Umím celkem používat latte(vkládat proměnné, foreach…), umím volat dotabázi přes model a dibi. Taky jsem snad celkem pochopil MVC model.Problém je v tom, že se mi nepovedlo rozchodit odkazy. Vytovřil jsem primitivní menu, podle zdejšího tutoriálu.

<a href="{link test}">Odkaz</a>

Dále jsem vytvořil samozřejmě příslušné test.latte v Homepage presenteru. Problém je že když kliknu na příslušný odkaz, místo vytouženého přechodu na něj se mi zobrazí Objekt nenalezen chybka… S routováním ani s ničím ostatním jsem nehábal, vše je podle defaultního sandboxu. Jedná se o Nette ve verzi pro PHP 5.2.0 . URL se změní, ale víc nic. Nevíte proč prosím? Děkuji.

powercz
Člen | 12
+
0
-

Ahoj,

předpokládám že chceš odkaz na stejný presenetr, na akci ‚test‘. Místo makra link použij plink

<a href="{plink test}">Odkaz</a>

Viz dokumentace

Jur4
Člen | 51
+
0
-

V rámci presenteru se link i plink chovají stejně. To nebude ten problém.

„Objekt nenalezen“ je, pokud se nemýlím hláška Apache. Máš povolený mod_rewrite? Popřípadě máš tam .htaccess?

Editoval Jur4 (12. 5. 2011 21:43)

B.Gen.Jack.O.Neill
Člen | 8
+
0
-

Děkuji, zkusil jsem, ale to nic nemění. jak jsem psal, makro to asi vezme v pohodě, protože URL se změní na /homepage/test, avšak stejně objekt nenalezen.

B.Gen.Jack.O.Neill
Člen | 8
+
0
-

Jur4 napsal(a):

V rámci presenteru se link i plink chovají stejně. To nebude ten problém.

„Objekt nenalezen“ je, pokud se nemýlím hláška Apache. Máš povolený mod_rewrite? Popřípadě máš tam .htaccess?

To bude ono! Já sem ale vůl. Moc děkuji :)

VaKvas
Začátečník | 111
+
0
-

Narazil jsem na stejny problem… povol mod_rewrite na apachi…

Toby91
Člen | 9
+
0
-

Ahoj, já mám uplně stejný problém ovšem mod_rewrite povolený mám a přesto nic :) na ostrym serveru to běží, bohužel na localhostu nikoliv …

VaKvas
Začátečník | 111
+
0
-

Jak vypada presne url, kterou do vygeneruje?

Toby91
Člen | 9
+
0
-

„http://localhost/www/homepage/test“

myslím, že je to v pořádku .. na serveru když dám /sign/in .. jak už je v sandboxu defaultně tak to jde… na localu ani ťuk a mod_rewrite, jak už jsem zmínil, je povolen.

Editoval Toby91 (12. 5. 2011 22:04)

VaKvas
Začátečník | 111
+
0
-

Tak jsem hod cely presenter… mas tam neco na takovou akci nebo template?

Toby91
Člen | 9
+
0
-

app/presenters/HomepagePresenter.php

class HomepagePresenter extends BasePresenter
{

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

                $model = new TestModel;
                $this->template->rows = $model->select();
	}

}

app/templates/Homepage/test.latte

Jur4
Člen | 51
+
0
-

Toby91 napsal(a):

myslím, že je to v pořádku .. na serveru když dám /sign/in .. jak už je v sandboxu defaultně tak to jde… na localu ani ťuk a mod_rewrite, jak už jsem zmínil, je povolen.

Ta url vypadá v pořádku. Zobrazí se chyba Apache nebo až Nette? Není náhodou na lokále problém s RewriteBase?

Editoval Jur4 (12. 5. 2011 22:22)

VaKvas
Začátečník | 111
+
0
-

zkus

<a n:href="Homepage:test">Odkaz</a>
Toby91
Člen | 9
+
0
-

tak už to běží, problém byl přecejen v mod_rewrite…
nejdřív jsem odkomentoval pouze „LoadModule rewrite_module modules/mod_rewrite.so“ – to nepomohlo
po změnách „AllowOverride None“ na „AllowOverride all“ a následném restartu apache vše funguje, každopádně všem děkuji za pomoc a omlouvám se za takovou banalitu :)

Editoval Toby91 (12. 5. 2011 22:30)