My default locale is pl_PL. When i switch to en_US the following code gives expected result:
// locale set to en_US
$product = $em->getRepository('model\Product')->find(1);
$category = $em->getRepository('model\ProductCategory')->find(1);
echo $product->getName();
echo $category->getName();
// result
beach ball
summer
But when I want to get category by model\Product association it's not translated:
// locale set to en_US
$product = $em->getRepository('model\Product')->find(1);
echo $product->getName();
echo $product->getCategories()->first()->getName();
// result
beach ball
lato - pl_PL instead of en_US
Is it translatable extension bug or is there something wrong in my code?
Dump:
select id, name from products; select object_id, locale, field, content from products_translations;
id | name
----+---------------
1 | pilka plazowa
object_id | locale | field | content
-----------+--------+-------+------------
1 | en_US | name | beach ball
select id, name from products_categories; select object_id, locale, field, content from products_categories_translations;
id | name
----+------
1 | lato
object_id | locale | field | content
-----------+--------+-------+---------
1 | en_US | name | summer
model\Product
/**
* @ORM\Table("products")
* @ORM\Entity(repositoryClass="repository\TranslatableRepository")
* @Gedmo\TranslationEntity(class="model\ProductTranslation")
*/
class Product {
/**
* @Gedmo\Translatable
* @ORM\Column(type="string", length=255)
*/
protected $name;
/**
* @ORM\OneToMany(targetEntity="model\ProductCategory", mappedBy="product")
*/
protected $category_list;
}
model\ProductCategory
/**
* @ORM\Table("products_categories")
* @Gedmo\TranslationEntity(class="model\ProductCategoryTranslation")
* @ORM\Entity(repositoryClass="repository\TranslatableRepository")
*/
class ProductCategory {
/**
* @Gedmo\Translatable
* @ORM\Column(type="string", length=255)
*/
protected $name;
}