Laravel,将令牌从控制器传递到视图

时间:2019-03-13 14:20:34

标签: php laravel

我很困惑为什么这里不能正常工作。在此控制器中,我要命中一个API端点,该端点成功后会给我一个令牌数组。在这里,我将其中一个令牌设置为accessToken变量,并尝试将其传递给视图,以在该处的另一个调用中使用

Controller.php

$initialLogin = $authService->initialLogin($newPhone,$request->temp_password,$request->email,$request->password_confirmation);

//this dump and die successfully dumps the token array, so I know I'm getting my tokens
dd($initialLogin);

//Here I'm setting the variable to one of the specific tokens
$accessToken = $initialLogin->auth_access_token;

//Now I'm redirecting to a view, which I'm successfully shown
return redirect(route('auth.phone'))->with('accessToken',$accessToken);

该过程完成后,在测试了确实显示了令牌的转储和死亡之后,它成功地将我重定向到视图。这里的问题是,在视图上转储变量时,它显示为空

view.php

<?php dd($accessToken)?>

这是怎么回事?我可以验证在控制器中转储$initialLogin是否显示了令牌,并且可以验证$accessToken是否已设置为所需的特定令牌,那么为什么传递不正确?

2 个答案:

答案 0 :(得分:1)

IIRC,当使用with时,会创建一个会话变量,因此,请进行以下更改:

更改

return redirect(route('auth.phone'))->with('accessToken',$accessToken);

收件人

return redirect(route('auth.phone', ['accessToken' => $accessToken]));

这样,您实际上是将变量传递给视图。 或者,如果您想继续使用with,请使用会话助手(session('accessToken'))访问令牌。

答案 1 :(得分:1)

当您使用with帮助程序进行重定向时,laravel会在用户会话中而不是在视图中设置变量

尝试一下

@if(session('accessToken'))
    {{ session('accessToken') }}
@endif