Ошибка в файле index. php при создании Rest Api с использованием Slim Framework - PullRequest
0 голосов
/ 21 февраля 2020

Я копирую код qiuck для slimeframework и вставляю в индекс. php, но когда я запускаю в localhost (http://localhost/MyApiFirstTry/public/hello/testMessage),

он показывает некоторые ошибки ..

как это

Fatal error: Uncaught Slim\Exception\HttpNotFoundException: Not found. in C:\xampp\htdocs\MyApiFirstTry\vendor\slim\slim\Slim\Middleware\RoutingMiddleware.php:93 Stack trace: #0 
C:\xampp\htdocs\MyApiFirstTry\vendor\slim\slim\Slim\Routing\RouteRunner.php(72): 
Slim\Middleware\RoutingMiddleware->performRouting(Object(Slim\Psr7\Request)) #1 
C:\xampp\htdocs\MyApiFirstTry\vendor\slim\slim\Slim\MiddlewareDispatcher.php(81):
 Slim\Routing\RouteRunner->handle(Object(Slim\Psr7\Request)) #2 
C:\xampp\htdocs\MyApiFirstTry\vendor\slim\slim\Slim\App.php(211): 
Slim\MiddlewareDispatcher->handle(Object(Slim\Psr7\Request)) #3 C:\xampp\htdocs\MyApiFirstTry\vendor\slim\slim\Slim\App.php(195): 
Slim\App->handle(Object(Slim\Psr7\Request)) #4 C:\xampp\htdocs\MyApiFirstTry\public\index.php(17): Slim\App->run() #5 {main} thrown in 
C:\xampp\htdocs\MyApiFirstTry\vendor\slim\slim\Slim\Middleware\RoutingMiddleware.php on line 93


как я могу решить ошибки ..

1 Ответ

3 голосов
/ 21 февраля 2020

Проблема

Ваш текущий каталог документов root в XAMPP - http://localhost/. Но в вашем приложении это должно быть http://localhost/MyApiFirstTry/public/. Вот почему вы получаете HttpNotFoundException исключение.

Это будет работать, когда вы префикс вашего маршрута с /MyApiFirstTry/public/:

app->get('/MyApiFirstTry/public/hello/{name}', function (Request $request, Response $response, array $args) {
    $name = $args['name'];
    $response->getBody()->write("Hello, $name");
    return $response;
});

Но это не так. Вы не должны делать это. В документации Slim :

Обычно шаблон фронт-контроллера используется для объединения соответствующих HTTP-запросов, полученных вашим веб-сервером, в один файл PHP.

Вы должны настроить свой веб-сервер так, чтобы он отправлял HTTP-запросы к вашему PHP файлу фронт-контроллера (/index.php).

Решение

Go для C:\xampp\htdocs\MyApiFirstTry\ и запустите следующую команду в терминале, чтобы запустить локальный веб-сервер:

php -S localhost:8888 -t public

Затем перейдите к http://localhost:8888 в своем браузере.

Подробнее о PHP встроенный сервер .

...