当它被包装为
Symfony\Component\HttpFoundation\Request->attributes->set('token', 123);
时,我试图使用Behatch\HttpCall\Request
,
但是behatch对象没有属性,只有setHeader()
,setServerParameter()
,但这些都不是我想要的,
原始 Symfony 请求的 getRequest() 也受到保护,
那么对于这种情况如何设置Symfony请求的属性呢?
use Behatch\HttpCall\Request;
/**
* @When I set the token attribute to :token
*/
public function iSetTheTokenAttributeTo($token)
{
$request = $this->getMainContext()->getRequest();
$symfonyRequest = $request->getRequest();
// Set the 'token' attribute
$symfonyRequest->attributes->set('token', $token);
}
本示例中的
iSetTheTokenAttributeTo
方法是 Behat 步骤定义。它使用 getRequest()
获取 Behatch 'Request' 对象,然后使用 getRequest()->getRequest()
获取底层 Symfony Request
对象。然后使用 $symfonyRequest->attributes->set('token', $token)
设置“token”属性。