Страница не найдена с правильно настроенным маршрутом - PullRequest
0 голосов
/ 01 апреля 2020

Итак, я создаю простой API, используя тонкий php фреймворк. Вот индекс. php, который находится в папке с именем 'publi c':

<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
use Slim\App;

require '../vendor/autoload.php';
require '../src/config/db.php';

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

    return $response;
});

require '../src/routes/user.php';

$app->run();

А вот файл user. php, расположенный в папке 'src / rout' :

$app->get('/api/users', function (Request $request, Response $response){
    $sql = "SELECT * FROM users";
    try{
        $db=new db();
        $db = $db->connect();

        $statement=$db->query($sql);
        $users=$statement->fetchAll(PDO::FETCH_OBJ);
        $db=null;
        $response=$response->withStatus(201);
        $body=['users'=>$users];
        $response->getBody()->write(json_encode($body));
        return $response;
    } catch (PDOException $e){
        echo $e->getMessage();
    }
});

$app->post('/api/users/add', function (Request $request, Response $response){
   $name=$request->getParam('name');
   $last_name=$request->getParam('last_name');
   $username=$request->getParam('username');
   $email=$request->getParam('email');

   $sql = "INSERT INTO `users` (`ID`, `Name`, `Last_Name`, `Username`, `Email`) VALUES (NULL,  :name, :last_name, :username, :email);";

    try{
        $db=new db();
        $db = $db->connect();

        $statement=$db->prepare($sql);
        $statement->bindParam(':name', $name);
        $statement->bindParam(':last_name', $last_name);
        $statement->bindParam(':email', $email);
        $statement->bindParam(':username', $username);

        $db=null;

        $statement->execute();
        $response=$response->withStatus(201);
        return $response;

    } catch (PDOException $e){
        echo $e->getMessage();
    }

});

Однако, когда я открываю ссылку: http://localhost/slimapp/public/index.php/api/users, я получаю сообщение об ошибке, что страница не найдена:

Страница, которую вы ищите не удалось найти. Проверьте адресную строку, чтобы убедиться, что ваш URL написан правильно. Если ничего не помогает, вы можете посетить нашу домашнюю страницу по ссылке ниже.

Что еще удивительнее, это то, что это были прекрасные минуты go, и я ничего не изменил в этой части код.

Есть идеи?

...