如何在 Slim 3 中设置 属性

how to set a property in Slim 3

我试图在 Slim 3 容器中添加一个 属性,但是当我使用 var dump 时它显示 "Notice: Undefined property: Slim\App::$user"。我知道在 Slim 2 中是:

$app->container->set('user',function(){
    return new User;
});

var_dump($app->user);

这将显示用户模型容器中的所有 属性。但是我正试图在 Slim 3 中实现这一点。

我查看了文档并找到了一个添加函数,但它 returns 是一个未定义的 属性。

这是我试过的代码:

$app->add('user',function(){
    return new User;
});
var_dump($app->user);

我知道用户 class 确实存在,因为我已经测试过了。我被困在这一点上,我不确定将 属性 添加到我的容器的方法是什么。

当您在 DI 容器上注册它时,它不会自动将其添加为 属性,您只需将其添加为 属性 即可:

$app->user = new User;

或者用 DI

$app->user = $app->container->get('user');