我正在使用 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
*/
}
Gedmo 包里有
Gedmo\Translatable\Entity\Repository\TranslationRepository
可以使用 public function findTranslations($entity)
方法