Route FILTER::OUT, FILTER::IN pouze statické?
- potapnik
- Člen | 127
Ahoj, asi přemýšlím logicky zcela špatně, ale nedá mi to se nezeptat…mám service, která dostává autowiringem connection do databáze. V této službě mám metody slugToId a idToSlug tak, aby je routovací filter načetl. Jenže tyhle metody se volají staticky, takže si nemůžu šáhnout do databáze přes this, a dostávám se do situaci, kterou neumím nějak uspokojivě vyřešit…poradí někdo?
- potapnik
- Člen | 127
A jak předám ten slug/id tomu callbacku? Kod mam nyní následující:
<?php
$container->router[] = new Route('<slug [a-z-0-9]+>', array(
'presenter' => 'Homepage',
'action' => 'page',
'page' => array(
Route::FILTER_IN => callback($container->pages->slugToId),
Route::FILTER_OUT => callback($container->pages->idToSlug)
),
));
?>
Nicméně mi to odkazy v šabloně n:href nepředělává…asi to nepředává parametry těm funkcím, jestli tomu dobře rozumím.
- Marek Šneberger
- Člen | 130
$container->router[] = new Route('<slug [a-z-0-9]+>', array(
'presenter' => 'Homepage',
'action' => 'page',
'page' => array(
Route::FILTER_IN => function ($slug) use($container){return $container->pages->slugToId($slug)},
Route::FILTER_OUT => function ($id) use($container){return $container->pages->idToSlug($id)}
),
));
A v modelu si uděláš metodu (NE statickou), která ti vrátí požadovaný ID nebo SLUG.
- h4kuna
- Backer | 740
callback by jsi zapsal:
<?php
callback($container->pages->slugToId)
$container->router[] = new Route('<slug [a-z-0-9]+>', array(
'presenter' => 'Homepage',
'action' => 'page',
'page' => array(
Route::FILTER_IN => callback($container->pages, 'slugToId'),
Route::FILTER_OUT => callback($container->pages, 'idToSlug')
),
));
?>
Anonymní fce bude asi lepší, jak psal Marek Šneberger
Editoval h4kuna (18. 10. 2012 16:42)