В 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()
{
//
}
}