0

使用 Routes 中的 PHP 框架 Slim 3,我这样做了:

// In routes :
$app->get('article/{id}-{slug}', function ($request, $response, $args) {
    $class = new Site\ArticleController($args);
    $class->show();
});

// In controllers :
public function show($args)
{
    $sql = "SELECT * FROM articles WHERE id = $args['id'] AND slug = $args['slug']";
    // ...
}

在 Laravel 5 中,这可以写成:

// In routes :
Route::get('article/{id}-{slug}', 'Site\ArticleController@show');

// In controllers :
public function show($id, $slug)
{
    $sql = "SELECT * FROM articles WHERE id = $id AND slug = $slug";
    // ...
}

我们可以对 Slim 3 做同样的事情吗?我的意思是:

$app::get('article/{id}-{slug}', 'Site\ArticleController@show');
4

1 回答 1

3

您可以通过执行以下操作来构建类似于 Laravel 的 Slim 3 路由:

<?php
// In routes :
$app->get('article/{id}-{slug}', '\Site\ArticleController:show');

// In controllers :
public function show($request, $response, $args)
{
    $sql = "SELECT * FROM articles WHERE id = $args['id'] AND slug = $args['slug']";
    // ...
}

Slim 路由器现在在第一个和第二个参数中传递 $request 和 $response,然后是您在最后一个 $args 中设置的任何 Route 参数。

我希望这有帮助!:)

于 2015-12-19T19:12:51.110 回答