Передача данных между маршрутом в Slim - PullRequest
0 голосов
/ 26 мая 2019

Я новичок в стройности и хочу передавать данные между двумя маршрутами (приложениями)

$app->get('/answer', function (Request $request, Response $response) use($talk,$voiceName,$message){

    // submit this data
    $request = $request->withAttribute('username','XXXXXX');

    return $response->withJson($ncco);
});


$app->post('/webhooks/comfrimcardinput', function (Request $request, Response $response, $args) use($talk,$voiceName,$message){

    //  Get this data
    $foo = $request->getAttribute('username');

    return $response->withJson($ncco);
});

1 Ответ

0 голосов
/ 26 мая 2019

Если я правильно понимаю ваш вопрос, вы хотите передать информацию / данные между двумя маршрутами, которые вызываются по отдельности.

Поскольку объекты запроса и ответа создаются для каждого маршрута и доступны только в контексте этого маршрута, невозможно прикрепить данные к этим объектам, которые будут сохраняться в течение загрузки страниц / сеансов.

Вам необходимо использовать какое-то хранилище для постоянных данных. Есть несколько вариантов для вас доступны. Некоторые хранят информацию на стороне сервера, другие хранят ее в браузере / на стороне клиента. Какое решение лучше всего подходит для вашего варианта использования, зависит от типа данных, которые вы хотите сохранить.

Серверные:

  • Файлы
  • База данных

на стороне клиента:

  • sessionStorage (доступно только из javascript)
  • localStorage (доступно только из javascript)
  • Cookies (доступно из php и javascript)

Cookies в PHP:

// write a cookie
setcookie("TestCookie", $value, time()+3600);  /* valid for 1 hour (3600 secods) */

// read a cookie
$value = $_COOKIE["TestCookie"];

Дополнительная информация о файлах cookie в PHP: setcookie , $ _ COOKIE

...