Element APIプラグインのv2では、特定のカテゴリにあるエントリを返す方法を検討する際に問題があります。
私はAPIルートでスラッグを持っていますが、クエリがトランスに含まれていなければならないものは解決できません。
私はこの問合せを全く異なる方法で行うべきですか?私はちょうど完全にそれをするために間違った方法を行ったことを考え続けている。
'api/v1/category/.json' => function($slug) {
return [
'elementType' => Entry::class,
'elementsPerPage' => 30,
'criteria' => [
'section' => 'posts',
'relatedTo' => ['targetElement' => ***category slug($slug)***],
],
'transformer' => function(Entry $entry) {
return [
'title' => $entry->title,
'id' => (int) $entry->id,
'slug' => $entry->slug,
'postDate' => $entry->postDate
];
},
'pretty' => true
];
}
ベストアンサー
targetElement
はカテゴリオブジェクトまたはカテゴリのIDである必要があります。
あなたのカテゴリのIDが5の場合は、
'relatedTo' => ['targetElement' => 5],
あなたが実際にあなたのカテゴリーをフェッチできるようにしたいのであれば(あなたのスラグはcpで変更できるので、私は示唆しませんが、IDはできません。
ElementCriteriaModel を作成して、スラッグでカテゴリを検索し、そこにオブジェクトを挿入します。
$criteria = craft()->elements->getCriteria(ElementType::Category);
$criteria->slug = $slug;
$category = $criteria->find();
あなたの配列の中に
'relatedTo' => ['targetElement' => $category],