[英]PHP Slim framework database class not working
我已经花了好几个小时来解决这个问题,但似乎无法弄清楚这个问题,基本上我有一个库文件,该文件在各处都可以调用,并且在任何地方都可以正常工作,除非我在这里调用它。
在尝试访问db对象并查询任何内容之前,我可以变得苗条,可以正常工作。 我可能有点昏暗,但是这在苗条的文档中差不多是说的那样,并加上了几行额外的代码,所以它停止工作并不有意义。
require_once "libary.php";
require 'Slim/Slim.php';
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();
$app->get('/login/:username/:password', function ($username, $password) {
//check the login details against the db...
echo "I SEE THIS";
$query = "select * from sometable";
$db->query($query);
echo "I DONT SEE THIS";
});
$app->run();
抱歉,响应缓慢,令人尴尬,但所需要做的就是在该内联函数中插入一行代码:
全局$ db
我已经假设(错误地)该变量在函数中是可见的,因为它是在我们的库中定义的。
谢谢
渣
您可以避免通过use关键字(PHP> = 5.3.0)使用GLOBAL:
$app->get('/login/:username/:password', function ($userstrong textname, $password) use ($db) {
//check the login details against the db...
echo "I SEE THIS";
$query = "select * from sometable";
$db->query($query);
echo "I DONT SEE THIS";
});
您还可以将数据库作为单例注入到应用程序中,从而:
$app->container->singleton('db', function () use ($dbcfg){
return new \myDatabaseClass($dbcfg);
});
然后在这里始终可以使用它:
$app->db->query();
请参阅此以获取更多详细信息: http : //docs.slimframework.com/#DI-Overview
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.