如何使用 API Platform 和 Gedmo Translatable 查询可翻译属性

问题描述 投票:0回答:1

我正在使用 Symfony 6 + API 平台 + Gedmo Translatable。

更新/发布项目工作正常,并且正确存储翻译。 另外,获得正确语言的集合也是可行的。

但是当我在可翻译字段上尝试 GET 请求时,什么也没有出现。

GET https://localhost/api/foos?name=bar

查询可翻译字段的正确方法是什么?

我还添加了像文档所述的查询提示。

这是我的代码(非常简短):

应用\Entity\Foo.php

use ApiPlatform\Metadata\ApiResource;
use ApiPlatform\Metadata\ApiFilter;
use Gedmo\Mapping\Annotation as Gedmo;

#[Gedmo\TranslationEntity(class: FooTranslation::class)]
#[ApiResource]
#[ApiFilter(SearchFilter::class, properties: [
    'name' => 'partial',
])]
class Foo
{
  #[Gedmo\Translatable]
  private string $name = '';

  /* And all getters/setters */
}

应用\Entity\FooTranslation.php


use Doctrine\ORM\Mapping as ORM;
use Gedmo\Translatable\Entity\MappedSuperclass\AbstractTranslation;
use Gedmo\Translatable\Entity\Repository\TranslationRepository;

#[ORM\Table(name: 'foo_translations')]
#[ORM\Index(columns: ['locale', 'object_class', 'field', 'foreign_key'], name: 'setting_translations_idx')]
#[ORM\Entity(repositoryClass: TranslationRepository::class)]
class FooTranslation extends AbstractTranslation
{
    /**
     * All required columns are mapped through inherited superclass
     */
}
php symfony api-platform.com doctrine-extensions
1个回答
0
投票

Gedmo 包里有

Gedmo\Translatable\Entity\Repository\TranslationRepository
可以使用
public function findTranslations($entity)
方法

© www.soinside.com 2019 - 2024. All rights reserved.