Можно ли получить переменные сеанса и вызвать API в Laravel View Composer? - PullRequest
0 голосов
/ 02 января 2019

В AppServiceProvider.php я пытаюсь получить данные из сеанса, затем вызвать API с ними, а затем передать переменную после получения их из ответа.

Кроме того, я не знаю, правильно ли это. Я добавил «Request $ request» для загрузки функции, как и в других частях кода.

И ошибка, которую я получаю: «RuntimeException в строке Request.php 388: хранилище сеансов не установлено по запросу». Означает ли это, что переменная сеанса не установлена? Я бы подумал, что они будут доступны после того, как я войду на свой сайт, когда я во время сеанса добавлю «token» и «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()
    {
        //
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...