在 Slim 3 中使用控制器创建路由,如 Laravel 5
Create routes with controllers in Slim 3 like in Laravel 5
在 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');
您可以像 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 参数。
希望对您有所帮助! :)
在 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');
您可以像 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 参数。
希望对您有所帮助! :)