Slim框架引入Eloquent ORM

一、添加Slim的数据库配置:

$config = [
        'settings' => [
                'determineRouteBeforeAppMiddleware'=>false,
                'displayErrorDetails'=>true,
                'db'=>[
                        'driver'=>'mysql',
                        'host'=>'localhost',
                        'database'=>'wechat',
                        'username'=>'root',
                        'password'=>'zxj1105511101',
                        'charset'=>'utf8',
                        'collation'=>'utf8_unicode_ci',
                        'prefix'=>'',
                ]
        ]
];

$app = new \Slim\App($config);

二、添加ORM的Service factory(配置Eloquent):

$container = $app->getContainer();
$container['db'] = function($container){
        $capsule = new \Illuminate\Database\Capsule\Manager;
        $capsule->addConnection($container['settings']['db']);
        $capsule->setAsGlobal();
        $capsule->bootEloquent();
        return $capsule;
};

三、传递table object到controller中:

$container[\App\WidgetController::class] = function($c){
        $table = $c->get('db')->table('users');
        return new \App\WidgetController($table);
};

四、从controller中查询数据库的表:

<?php

namespace App;
use Illuminate\Database\Query\Builder;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;

class WidgetController
{   
    protected $table;

    public function __construct(
        Builder $table
    ) { 
        $this->table = $table;
    }

    public function __invoke(Request $request, Response $response, $args)
    {   
        return $response;
    }

    public function getUser(Request $request, Response $response, $args)
    {
        $records = $this->table->where('username','like','%test%')->get();
        foreach($records as $value){
                print_r($value->username)."<br>";
        }
    }
    
}

五、以controller的methods作为路由的回调函数:

$app->get('/test',App\WidgetController::class.':getUser');


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值