问题描述
我们如何在实体或 Trait 内部访问当前用户本地?
namespace App\Entity;
class Activities
{
use Translation;
public $locale;
public function __construct(**PUT User locale**)
{
$this->locale = **PUT User locale**
}
}
解决方法
您不能这样做,因为区域设置存储在不应从实体访问的 Request
对象中。
因此,如果您确实需要该语言环境,则应将其作为参数传递。
我建议您环顾Doctrine extension documentation for translating entities。
您会发现这比每次仅传递用户区域设置要好。
实际上,它是使用事件侦听器将语言环境传递给 Translation
组件。