如何解决Api 平台在实体继承中没有得到翻译
我在实现 Gedmo\Translatable\Translatable
的学说中有类继承,
如果我自己获取数据,或者使用其他第三方库(如 EasyAdmin),它会根据 Accept-Language 标头正常工作。但是使用 api 平台我总是得到默认的。 对于没有类继承的任何其他实体,如果它有效。
这个例子在子类中实现了 Translatable,但我也在父类中尝试过。
我的配置是:
# config/packages/stof_doctrine_extensions.yaml
stof_doctrine_extensions:
default_locale: '%locale%'
translation_fallback: true
persist_default_translation: true
orm:
default:
timestampable: true
sluggable: true
blameable: true
translatable: true
<?PHP
namespace App\Entity;
use App\Repository\GreetingRepository;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* @ORM\Entity(repositoryClass=GreetingRepository::class)
* @ORM\InheritanceType("JOINED")
* @ORM\discriminatorColumn(name="type",type="integer")
* @ORM\discriminatorMap({
* 0 = "App\Entity\Greeting",* 1 = "App\Entity\Hello",* })
*/
class Greeting
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
protected $id;
/**
* @ORM\Column(type="string",length=255)
* @Gedmo\Translatable
*/
protected $title;
public function getId(): ?int
{
return $this->id;
}
public function getTitle(): ?string
{
return $this->title;
}
public function setTitle(string $title): self
{
$this->title = $title;
return $this;
}
}
<?PHP
namespace App\Entity;
use App\Repository\HelloRepository;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Translatable\Translatable;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* @ORM\Entity(repositoryClass=HelloRepository::class)
*/
class Hello extends Greeting implements Translatable
{
/**
* @ORM\Column(type="string",length=255)
* @Gedmo\Translatable
*/
protected $form;
public function getId(): ?int
{
return $this->id;
}
public function getForm(): ?string
{
return $this->form;
}
public function setForm(string $form): self
{
$this->form = $form;
return $this;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。