Filtr v routě pracující s databází odesílá dotaz k databázi na každé stránce webu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- umrlec
- Člen | 56
Zdravím, potřeboval bych s něčím poradit. Píši si aplikaci s vícero moduly a všelijakými presentery. Problém je v tom, že ve všech modulech ve všech jejich presenterech se neustále posílá dotaz do databáze:
SELECT article_title_webalized
FROM `articles`
WHERE `article_id`=0
Což vlastně odpovídá jediné mé metodě ArticleModel::getWebalizedTitleById($id), která je volána pouze v bootstrapu jako filter routy (nahrazuje id za webalized název):
<?php
$router[] = new Route('blog/clanky/<id>/', array(
'module' => 'Frontend:Blog',
'presenter' => 'Article',
'action' => 'show',
'id' => array(
Route::VALUE => 0,
Route::FILTER_OUT => callback('ArticleModel::getWebalizedTitleById'),
Route::FILTER_IN => callback('ArticleModel::getIdByWebalizedTitle'),
),
));
?>
Dá se to napsat nějak lépe, abych se všude zbytečně nedotazoval do databáze?