CakePHP3のチュートリアルの続き、タグを指定してブックマークを取得。
config/routes.phpを編集するので、コメントと空行を除いた結果をだしてみる。
connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']);
$routes->connect('/pages/*', ['controller' => 'Pages', 'action' => 'display']);
$routes->fallbacks(DashedRoute::class);
});
Plugin::routes();
チュートリアルの通りにconfig/routes.phpを編集する。編集後にブラウザからhttp://localhost:8765/bookmarks/taggedにアクセスする。
その結果、MissingActionExceptionが発生した。理由は、BookmarksControllerクラスにtaggedアクションが存在しないため。
Router::scope(
'/bookmarks',
['controller' => 'Bookmarks'],
function ($routes) {
$routes->connect('/tagged/*', ['action' => 'tags']);
}
);
チュートリアルに従って、BookmarksControllerクラスにtags()を追加する。
public function tags()
{
$tags = $this->request->params['pass'];
$bookmarks = $this->Bookmarks->find('tagged', [
'tags' => $tags
]);
$this->set([
'bookmarks' => $bookmarks,
'tags' => $tags
]);
}
追加後にブラウザからhttp://localhost:8765/bookmarks/taggedにアクセスする。
その結果、BadMethodCallExceptionが発生した。続きは次のチュートリアル、Finderメソッドの作成を実施してから確認してみる。
コメント