Symfony KnpDoctrineBehaviors,如何使用Sluggable和Translateable

Symfony KnpDoctrineBehaviors,如何使用Sluggable和Translateable,symfony,doctrine-orm,behavior,symfony-2.3,Symfony,Doctrine Orm,Behavior,Symfony 2.3,我使用KnpDoctrineBehaviors(slagable、translateable等)。我用于slug的字段,我只有在MyClassTranslations中。因此,当我为translations类添加Sluggable时,每个i18n条目都有不同的slug。如何解决这个问题?谢谢大家! 您可以覆盖实体中title的getter,只需从实体上的KnpDoctrineBehaviors调用translate方法即可。它将尝试获取当前区域设置中的标题翻译,或回退到默认区域设置翻译 <

我使用KnpDoctrineBehaviors(slagable、translateable等)。我用于slug的字段,我只有在MyClassTranslations中。因此,当我为translations类添加Sluggable时,每个i18n条目都有不同的slug。如何解决这个问题?谢谢大家!

您可以覆盖实体中title的getter,只需从实体上的KnpDoctrineBehaviors调用translate方法即可。它将尝试获取当前区域设置中的标题翻译,或回退到默认区域设置翻译

<?php

namespace AppBundle\Entity;

use Knp\DoctrineBehaviors\Model as ORMBehaviors;
use AppBundle\Entity\AppTrait\TranslatableEntity;

class SomeEntity
{
    use ORMBehaviors\Translatable\Translatable;
    use ORMBehaviors\Sluggable\Sluggable;

    public function getSluggableFields()
    {
        return ['title'];
    }

    public function getTitle()
    {
        return $this->translate(null,true)->getTitle();
    }

每个实体需要一个slug,或者不同的slug用于不同的翻译?@nifr我希望每个实体都需要一个slug。然后只需将slug属性添加到基本
实体
类中。。。不是您的
EntityTranslation
类。@nifr是的,但在我的实体中没有字段标题。例如,我的EntityTranslation中有字段标题。对于slug,我需要将方法添加到entity
getSluggableFields
。您找到解决方案了吗?
    public function getTitle()
    {
        return $this->translate('en')->getTitle();
    }