getUser()
of security.context
service によって呼び出されたオブジェクトが実際に私のカスタム ユーザー クラスのオブジェクトであることをコントローラーでチェックインするのは良い考えですか?
public function editAction()
{
$user = $this->container->get('security.context')->getToken()->getUser();
if (!is_object($user) || !$user instanceof \Acme\UserBundle\User) {
throw new AccessDeniedException('This user doesn't have access');
}
// work with $user
// ....
保証されている唯一のことはgetUser()
、 を実装したオブジェクトを返すことだけSymfony\Component\Security\Core\User\UserInterface
です。
これは、コントローラーが潜在的に任意のタイプのオブジェクトを受け取る可能性があることを意味します (おそらく匿名のトークン)。そのため、オブジェクトをビューに (制御せずに) 直接渡し、その後 を呼び出します。これは、クラス .. で{{ user.biography }}
のみ実装されます。Acme\UserBundle\User
エラーを起こしていますか?