在Slim中的路线之间传递数据

时间:2019-05-26 12:45:33

标签: php slim-3

我是苗条新手,我想在两条路线(应用程序)之间传递数据

$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 :(得分:-1)

如果我正确理解了您的问题,则希望在两条分别呼叫的路由之间传递信息/数据。

由于请求和响应对象是为每个路由生成的,并且仅在该路由的上下文中可用,因此无法将数据附加到将通过页面加载/会话持久存在的对象。

您需要对持久性数据使用某种存储方式。有几个选项供您选择。一些存储在服务器端的信息,其他存储在浏览器/客户端中。对于您的用例而言,哪一种最佳解决方案取决于您要存储的数据类型。

服务器端:

  • 文件
  • 数据库

客户端:

  • sessionStorage(仅适用于javascript)
  • localStorage(仅适用于javascript)
  • Cookies(可从php和javascript获取)

PHP中的Cookie:

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

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

有关PHP cookie的更多信息:setcookie$_COOKIE