要素APIはカテゴリ別にエントリを表示します

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],

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です