Nadradená kategória v route

minimal
Člen | 12
+
0
-

Ahojte,

prišiel som si k vám poradu. Mám nejakú „entitu“ ktorá môže mať kategóriu a zároveň môže ale nemusí mať nadradenú kategóriu.

Snažím sa dostiahnuť výsledku http://localhost/…ia/kategória prípadne len http://localhost/…ia/kategória

Absolútne netuším ako na to a už som dokumentáciu prešiel asi 10 zhora dole. Momentálne som sa dostal do stavu kedy mi funguje len http://localhost/…ia/kategória

		$frontendModule[] = new Route('kategoria/<slug>', [
			'presenter' => 'Category',
			'action' => 'default',
			'slug' => [
				Nette\Routing\Route::FILTER_OUT => 'Nette\Utils\Strings::webalize',
			],
		]);
public function renderDefault(string $slug, int $page = 1)
	{
		// something
	}

Vedel by ma niekto postrčiť prípadne poslať nejaký sample ? Napadlo ma spraviť ešte jeden optional parameter v render metóde ale to je dosť blbosť.

Ďakujem

Pepino
Člen | 249
+
+1
-

Řekl bych, že hledáš:
https://doc.nette.org/…tion/routing#…
A tohle:
https://doc.nette.org/…tion/routing#…

		$frontendModule[] = new Route('<slug .+>', [
			'presenter' => 'Category',
			'action' => 'default',
			null => [
				Route::FILTER_IN => function (array $params): array { /* ... */ },
				Route::FILTER_OUT => function (array $params): array { /* ... */ },
			],
		]);
minimal
Člen | 12
+
0
-

Pepino napsal(a):

Řekl bych, že hledáš:
https://doc.nette.org/…tion/routing#…
A tohle:
https://doc.nette.org/…tion/routing#…

		$frontendModule[] = new Route('<slug .+>', [
			'presenter' => 'Category',
			'action' => 'default',
			null => [
				Route::FILTER_IN => function (array $params): array { /* ... */ },
				Route::FILTER_OUT => function (array $params): array { /* ... */ },
			],
		]);

Výborne vieš mi povedať ako to cca použiť pre môj zámer ? Predpokladám že si tam natiahnem DB a na základe toho čo mi ide do IN filtrovať v OUT ?

MajklNajt
Člen | 471
+
0
-

minimal napsal(a):

Pepino napsal(a):

Řekl bych, že hledáš:
https://doc.nette.org/…tion/routing#…
A tohle:
https://doc.nette.org/…tion/routing#…

		$frontendModule[] = new Route('<slug .+>', [
			'presenter' => 'Category',
			'action' => 'default',
			null => [
				Route::FILTER_IN => function (array $params): array { /* ... */ },
				Route::FILTER_OUT => function (array $params): array { /* ... */ },
			],
		]);

Výborne vieš mi povedať ako to cca použiť pre môj zámer ? Predpokladám že si tam natiahnem DB a na základe toho čo mi ide do IN filtrovať v OUT ?

routing je komplexná problematika, takže odporúčam začať tu: https://doc.nette.org/…tion/routing

už si tu mal otázku ohľadom routovania, no nikto ti tu nebude písať hotové riešenie pre každý tvoj use-case, takže v prvom rade študuj, skúšaj, a keď sa zasekneš na konkrétnej chybovej správe alebo nepochopíš konkrétnu vetu v dokumentácií, potom ti veľa ľudí s radosťou pomôže

petr.pavel
Člen | 535
+
+1
-

Souhlasím, že fórum je na pomoc s konkrétními, detailními případy.

Když si dumpneš $params, zjistíš, co ti tam chodí. Krokováním Route::match() a Route::constructUrl() můžeš vysledovat, co se děje s parametry v běžném případě, a jak případně zařídit přesměrování z url s volitelnou nad-kategorií na url bez ní (chceš to mít kanonické).

Kdybys potřeboval víc postrčit, určitě se tu najdou lidé, kteří rádi pomůžou za peníze. Třeba já :-) mentorováním se živím. Mrkni na moje reference a hodinovku, a jestli jsi s ní v pohodě, můžeme si zavolat přes Zoom.
https://www.naucmese.cz/…b-php-js-sql

MajklNajt napsal(a):
už si tu mal otázku ohľadom routovania, no nikto ti tu nebude písať hotové riešenie pre každý tvoj use-case, takže v prvom rade študuj, skúšaj, a keď sa zasekneš na konkrétnej chybovej správe alebo nepochopíš konkrétnu vetu v dokumentácií, potom ti veľa ľudí s radosťou pomôže