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が発生した。
次回、ビューの作成で解決できる。
コメント