当路由处于单独的类而不是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)
感谢任何帮助,
关心丹