首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Slim 3中间件设置参数未得到

Slim 3中间件设置参数未得到
EN

Stack Overflow用户
提问于 2018-01-12 07:36:13
回答 1查看 426关注 0票数 0

settings.php文件代码

代码语言:javascript
运行
复制
return [
'settings' => [
    'displayErrorDetails' => true, // set to false in production
    'addContentLengthHeader' => false, // Allow the web server to send the content-length header
    'encryption_key' => 'key1',
    'jwt_secret' => 'secret1',
    'db' => [
        'servername' => 'localhost',
        'username' => 'user',
        'password' => 'pwd',
        'dbname' => 'db',
    ],
],];

index.php文件代码

代码语言:javascript
运行
复制
$settings = require __DIR__ . '/../src/settings.php';
$app = new \Slim\App($settings);

$app->add(new \Slim\Middleware\JwtAuthentication([
"path" => "/",
"passthrough" => ["/login"],
"secret" => $this->jwt_secret,
"secure" => false,
"error" => function ($request, $response, $arguments) {
    $data["status"] = "error";
    $data["message"] = $arguments["message"];
    return $response
        ->withHeader("Content-Type", "application/json")
        ->write(json_encode($data, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT));
}]));

我收到了错误:中没有在对象上下文中使用$this

如何在中间件中获得设置属性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-12 13:43:29

在这种情况下,$this应该是对象。

这些设置存储为数组,可按以下方式访问:

代码语言:javascript
运行
复制
$app->add(function (Request $request, Response $response, $next) {
    /* @var Container $this */
    $settings = $this->get('settings');

    $jwtSecret = $settings['jwt_secret'];

    // Do something...

    return $next($request, $response, $next);
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48221598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档