Laravel具有intended()
方法,用于在登录后重定向用户。它使用会话密钥url.intended
,as seen here。但是,在进行测试时,它似乎不起作用。我将会话设置为:session(['url.intended' => url()->previous()]);
然后这就是我测试会话的方式:
$this->app['session']->setPreviousUrl('some-url');
$response = $this->get(route('login'));
$response->assertSuccessful();
$response->assertSessionHas('url', 'some-url'); //fails
$response->assertSessionHas(['url' => ['intended' => 'some-url']]); //fails
当不使用点符号作为键时,它将起作用。意思是,我可以断言存在键urlIntended
的会话。
我该怎么办?
答案 0 :(得分:0)
我刚刚意识到使用intended()
方法实际上会返回并删除会话,因为它使用的是 pull()。
以下是更具体的用法:$path = $this->session->pull('url.intended', $default);