Создавайте маршруты с контроллерами в Slim 3, как в Laravel 5

С помощью фреймворка PHP Slim 3 в Routes я сделал это:

// 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');

0

Решение

Вы можете структурировать маршруты Slim 3, похожие на Laravel, выполнив что-то вроде этого:

<?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 в первом и втором параметрах, а затем любые аргументы Route, которые вы указали в последних $ args.

Надеюсь, это поможет! 🙂

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]