管理者が動的に静的コンテンツ ページを追加/編集/削除できるアプリケーション用の静的ページ コンポーネントを作成しました。これらはデータベースに保存されます。
(たとえば、「about」というページを作成し、myapplication/about でアクセスできます)
これは、これらのページのルーティングです。
$page = new StaticPage();
$slugs = $page->find('list', array(
'fields' => array('slug'),
'recursive' => -1,
'order' => 'StaticPage.slug DESC',
));
Router::connect('/:slug',
array('controller' => 'static_pages', 'action' => 'display'),
array(
'pass' => array('slug'),
'slug' => implode($slugs, '|')
)
);
現在、スラッグが既存のコントローラー(ユーザーなど)と一致するページを作成すると、RouteがUsersControllerに上書きされるという問題があります。
そのため、ブラックリストなどのようなものが必要です。そのコントローラーが存在するかどうかを確認する検証ルールを書き始めました。Cake 1.3 には、コントローラーが存在しない場合に false を返す関数「loadController」がありましたが、cake 2.x にはそのような関数はありません。私はどういうわけかこれを逃していますか?それは新しい名前を持っていますか、それとも現在ユーティリティライブラリにありますか?
または、これを解決するためのより良い方法はありますか?