如何在所需的PHP文件中使用数据库实例

如何在所需的PHP文件中使用数据库实例,php,slim,illuminate-container,Php,Slim,Illuminate Container,我正在尝试使用slimphp设置一个restfulapi。这是我第一次使用微框架,我正试图用它来构造一个应用程序,使其保持可维护性 我正在尝试这样构造我的应用程序: root - index.php - composer.json - app - - routes - - - session.php - - lib - - - functions.php - - vendor - - - Composer Vendor dirs and files 我正在使用Illumb访问我的MySQL数据

我正在尝试使用slimphp设置一个restfulapi。这是我第一次使用微框架,我正试图用它来构造一个应用程序,使其保持可维护性

我正在尝试这样构造我的应用程序:

root
- index.php
- composer.json
- app
- - routes
- - - session.php
- - lib
- - - functions.php
- - vendor
- - - Composer Vendor dirs and files
我正在使用Illumb访问我的MySQL数据库,虽然我所有的代码都放在index.php文件中,但一切都正常。当我试图将身份验证函数拆分为session.php时,我无法再访问该实例。我遵循github页面的标准设置

use \Slim\Slim;
use Illuminate\Database\Capsule\Manager as Capsule;

$capsule = new Capsule;

$capsule->addConnection([
'driver'    => 'mysql',
'host'      => 'localhost',
'database'  => 'database',
'username'  => 'root',
'password'  => 'password',
'charset'   => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix'    => '',
]);

// Set the event dispatcher used by Eloquent models... (optional)
use Illuminate\Events\Dispatcher;
use Illuminate\Container\Container;
$capsule->setEventDispatcher(new Dispatcher(new Container));

// Make this Capsule instance available globally via static methods... (optional)
$capsule->setAsGlobal();

// Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher())
$capsule->bootEloquent();

$app = new Slim();

//get login routes
require 'app/routes/session.php';

$app->get("/", function() use ($app){

$app->render(200,array(
        'msg' => 'welcome',
    ));
});
以下是my session.php:

$app->post("/login", function() use ($app){
    $postVarsAll = $app->request->post();
    if( isset($postVarsAll['password']) && isset($postVarsAll['username']))
    {
        //Get associated user
        $app->render(200,array(
            'msg' => print_r(Capsule,true)
        ));
        $user = Capsule::table('user')->where('username','=',$postVarsAll['username'])-  >first();
    }else{
    $app->render(200, array(
        "msg" => "no params",
        "params" => $postVarsAll
    ));
    }

});
这会抛出一个500错误并告诉我:

"msg": "NOTICE: Use of undefined constant Capsule - assumed 'Capsule'",
我希望只使用session.php中的Capsule实例。有人知道怎么做吗

如果我取出太空舱,路线就正常了

谢谢你的帮助

编辑 用这个我得到了完整的胶囊物体

编辑2 谢谢你找到答案。 我可以使用
$capsule->table(“user”)->……
来满足我的查询需求

'msg' => print_r(Capsule,true)
试一试


如果我这样做,我会得到$capsule对象。我在上面的编辑中显示了它。您知道如何获取用于运行查询的Capsule实例吗?$user=Capsule::table('user')没有实例创建table()是一个静态函数。请尝试$Capsule=new Capsule;然后搜索$capsule->getTable()或类似的东西,非常确定您会找到染料!!表函数。非常感谢。
'msg' => print_r(Capsule,true)
'msg' => print_r($capsule,true)