首页 > 解决方案 > 是否可以在 Laravel 视图作曲家中获取会话变量并调用 API?

问题描述

在 AppServiceProvider.php 中,我试图从会话中获取数据,然后用它调用 API,然后在从响应中获取变量后传递一个变量。

还有,不知道对不对。我添加了“Request $request”来启动功能,就像在代码的其他部分一样。

我得到的错误是“Request.php 第 388 行中的 RuntimeException:会话存储未按请求设置。” 这是否意味着未设置会话变量?当我在登录期间会话输入“令牌”和“member_id”时,我原以为它们会在我登录到我的网站后可用。

是不是因为视图控制器级别更高,所以我在登录期间放置的会话不会在此处的引导功能中的引导代码使用它们之前出现?哦,或者请求并没有像我希望的那样真正作为引导函数的参数传入。否则我将如何做到这一点或从会话中获取变量?

无论如何,我采取的步骤是否正确?如果我在整个过程中做错了事情,例如不良做法,请指出,谢谢。

这是我的代码:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Http\Request;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot(Request $request)
    {
        $client = new \GuzzleHttp\Client();

        $params = array(
            'token' => $request->session()->get('token'),
            'member_id' => $request->session()->get('member_id'),
            'activity' => 'GET MEMBER INFO'
        );

        $response = $client->request('POST',
            env('SPACE_4_CAR_API_DOMAIN') . 'select_api/GetMemberInfo.php',
            ['json' => $params]
        );

        $returnData = json_decode($response->getBody());

        view()->composer('layout', function ($view) {
            $view->with('is_admin', $returnData->is_administrator);
        });
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

标签: laravelapisessionrequestcomposer-php

解决方案


推荐阅读