CakePHP3のブックマークチュートリアルを触ってみる3 タグを指定してブックマークを取得

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メソッドの作成を実施してから確認してみる。

コメント

タイトルとURLをコピーしました