Generování routy id-nazev-produktu

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

Ahoj,

opravdu jsem hledal, ale nenašel :(

mám

<?php

$products = [1 => "produkt1",2 => "produkt2"];

    $router[] = new Route('[<locale=cs cs|en>/]offer/<id>', [
            "module" => "Front",
            "presenter" => "ProductShow",
            "action" => "detail",
            "id" => array(
                Route::FILTER_OUT => function ($id) use ($products) {
                    return $id;
                },
                Route::FILTER_IN => function ($id) use ($products) {
                    return array_search($id, $products);
                }
            ),
        ]);
?>

a potřebuji aby mi aplikace generovala a brala routy
domena/offer/1-produkt1
domena/offer/2-produkt2

Nedaří se mi tam dostat tu část -produkt1

Oli
Člen | 1215
+
0
-
"id" => array(
	Route::FILTER_OUT => function ($id) use ($products) {
		if (is_numeric($id)
		{
			return $id . '-' . $products[$id];
		}
		return $id;
	},
	Route::FILTER_IN => function ($id) use ($products) {
		if (is_numeric($id))
		{
			return $id;
		}
		$splited = Strings::split($id, '-');
		return array_search($splited[0], $products);
	}
),

A nebo naopak. Vždycky se mě plete co je IN a co OUT :)

Píšu to z hlavy, takže nevím jestli to je uplně správně, ale snad tě to aspoň nakopne správným směrem :-)

Editoval Oli (13. 6. 2016 22:03)