小编use*_*740的帖子

在Slim Framework 3中访问类中的应用程序

当路由处于单独的类而不是index.php时,我无法理解如何访问Slim实例

使用Slim Framework 2时,我总是使用以下内容,但它在Slim 3中不起作用:

$this->app = \Slim\Slim::getInstance();
Run Code Online (Sandbox Code Playgroud)

我试图访问我已在容器中设置的数据库连接,但是来自一个单独的类.这是我目前在index.php中启动Slim应用程序的方法:

require_once("rdb/rdb.php");
$conn = r\connect('localhost');
$container = new \Slim\Container;
$container['rdb'] = function ($c){return $conn;}
$app = new \Slim\App($container);
Run Code Online (Sandbox Code Playgroud)

这是我的路线:

$app->get('/test','\mycontroller:test');
Run Code Online (Sandbox Code Playgroud)

这就是我在mycontroller.php类中得到的,我的路由指向哪个,这显然不起作用,因为$ this-> app不存在:

class mycontroller{
public function test($request,$response){
$this->app->getContainer()->get('rdb');
}
Run Code Online (Sandbox Code Playgroud)

错误消息如下,因为与Slim 2相比,getinstance不属于Slim 3:

Call to undefined method Slim\App::getInstance() 
Run Code Online (Sandbox Code Playgroud)

感谢任何帮助,

关心丹

php frameworks slim

11
推荐指数
2
解决办法
2万
查看次数

标签 统计

frameworks ×1

php ×1

slim ×1