Slim 和 laravel ORM运用

{
    "require": {
        "slim/slim": "3.*",
        "illuminate/database":"~4.2"
    }
}

composer 加载

require __DIR__ .'/vendor/autoload.php';
require __DIR__ .'/database.php';
require __DIR__ .'/user.class.php';
require __DIR__ .'/User.php';

use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

$app = new \Slim\App(array('debug'=>true));
$app->get('/hello/{name}', function (Request $request, Response $response) {
    $name = $request->getAttribute('name');
    $response->getBody()->write("Hello, $name");
    return $response;
});

$app->get('/', 'get_cpam_users');

$app->get('/cpam_users/{id}', function(Request $request, $response, $args) {
    get_cpam_users_id($args['id']);
});
$app->post('/cpam_users_add', function(Request $request, $response, $args) {
    $queryParams = $request->getParams();
    file_put_contents('aa.txt',json_encode($queryParams),FILE_APPEND);
    add_cpam_users($queryParams);
//    add_cpam_users($request->getParsedBody());
});
$app->put('/update_cpam_users', function(Request $request, $response, $args) {
    update_cpam_users($request->getParams());
});
$app->delete('/delete_cpam_users', function(Request $request, $response, $args) {
    delete_cpam_users($request->getParams());
});
$app->run();

index.php

require __DIR__ .'/vendor/autoload.php';
$database = [
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'database'  => 'test',
    'username'  => 'root',
    'password'  => 'root',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
];

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

$capsule = new Capsule;
// 创建链接
$capsule->addConnection($database);

// 设置全局静态可访问
$capsule->setAsGlobal();

// 启动Eloquent
$capsule->bootEloquent();

database.php链接数据库



use  Illuminate\Database\Eloquent\Model  as Eloquent;

class User extends  Eloquent
{
protected $table = 'users';
}

Model User

//包含Eloquent的初始化文件
include __DIR__ . '/database.php';

use Illuminate\Database\Capsule\Manager as Capsule;

Capsule::table('users')->insert(array(
    array('username' => 'Hello',  'email' => '[email protected]'),
    array('username' => 'Carlos',  'email' => '[email protected]'),
    array('username' => 'Overtrue',  'email' => '[email protected]'),
));

insert.php

include __DIR__ . '/database.php';

use Illuminate\Database\Capsule\Manager as Capsule;

Capsule::schema()->create('users', function($table)
{
    $table->increments('id');
    $table->string('username', 40);
    $table->string('email')->unique();
    $table->timestamps();
});

create table.php


function get_cpam_users($response) {
    $oUser = User::all();
//    try
//    {
//
//        $response = $response->withStatus(200)->withHeader('Content-type', 'application/json');
//        $response->getBody()->write(json_encode(
//                [
//                    'status' => 200,
//                    'error' => '',
//                    'datas' => $oUser
//                ]
//            )
//        );
//        return $response;
//    } catch(Exception $e) {
//        $response = $response->withStatus(500)->withHeader('Content-type', 'application/json');
//        $response->getBody()->write(json_encode(
//            [
//                'status' => 500,
//                'error' => $e->getMessage(),
//                'datas' => ''
//            ]
//        ));
        return json_encode($oUser);
//    }
}

处理数据


测试接口
$res = curl_request('http://lumen.local/');
var_dump($res);
echo '
'
; function curl_request($url,$data=''){ $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 500); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_URL, $url); if($data){ curl_setopt ( $curl, CURLOPT_POST, 1 ); curl_setopt ( $curl, CURLOPT_POSTFIELDS, $data ); } $content = curl_exec($curl); return $content; }

你可能感兴趣的:(laravel,小功能)