簡體   English   中英

Symfony功能測試 - 控制器方法getUser返回null

[英]Symfony functional test - controller method getUser returns null

我在用戶登錄的功能測試中有方法:

/**
 * @param User $user
 */
private function logIn(User $user)
{
    $firewallName = 'site';
    $session = $this->client->getContainer()->get('session');
    $securityContext = $this->client->getContainer()->get('security.context');

    $token = new UsernamePasswordToken($user, null, 'main', array('ROLE_USER'));
    $securityContext->setToken($token);

    $session->set('_security_'.$firewallName, serialize($token));
    $session->save();

    $cookie = new Cookie($session->getName(), $session->getId());
    $this->client->getCookieJar()->set($cookie);
}

當我嘗試在控制器中獲取用戶時,它返回null。

public function editProfile(Request $request)
{
    $user = $this->getUser(); //returns null
    ...
}

logIn方法錯了嗎?

更新

測試方法:

public function testProfile() {
    ...
    $user = $this->createUser();
    $this->logIn($user);
    $this->client->request('POST', '/profile/edit', $data);
    ...
}

嘗試更改:

 $token = new UsernamePasswordToken($user, null, 'main', array('ROLE_USER'));

 $token = new UsernamePasswordToken($user, null, $firewallName, array('ROLE_USER'));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM