スポンサーリンク

CakePHP3のブックマークチュートリアルを触ってみる4 Finderメソッドの作成

スポンサーリンク
スポンサーリンク

CakePHP3のチュートリアル続き、Finderメソッドの作成

前回のエラーは、この部分を実施していなかったためにエラーが発生していた。
チュートリアルに従って、src/Model/Table/BookmarksTable.phpにカスタムFinderメソッドを作成する。


    public function findTagged(Query $query, array $options)
    {
        $bookmarks = $this->find()->select(['id', 'url', 'title', 'description']);
        
        if (empty($options['tags'])) {
            $bookmarks->leftJoinWith('Tags', function ($q) {
                return $q->where(['Tags.title IS ' => null]);
            });
        } else {
            $bookmarks->innerJoinWith('Tags', function ($q) {
                return $q->where(['Tags.title IN ' => $options['tags']]);
            });
        }
        return $bookmarks->group(['bookmarks.id']);
    }

カスタムFinderメソッドを追加したあと、ブラウザでhttp://localhost:8765/bookmarks/tagsにアクセスする。
結果、今度はMissingTemplateExceptionが発生した。
次回、ビューの作成で解決できる。

コメント

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