Я не знаю, как решить эту тонкую ошибку - PullRequest
0 голосов
/ 18 мая 2019

Я новичок со slim и php.В настоящее время создаю веб-сайт для колледжа с этими технологиями и angular.

У меня есть таблица в phpmyadmin с некоторыми данными, которые я хочу показать на своем веб-сайте, и у меня возникли некоторые проблемы с slim, которого я не понимаю.

Это ошибка, которая у меня есть.Мы используем почтальон для проверки нашего php-кода.

 <h1>Slim Application Error</h1>
        <p>The application could not run because of the following error:</p>
        <h2>Details</h2>
        <div>
            <strong>Type:</strong> RuntimeException
        </div>
        <div>
            <strong>Message:</strong> Callable Project\Mapas\MapasControllergetMapas does not exist
        </div>
        <div>
            <strong>File:</strong> /Users/raul/Desktop/Proyecto Web/pruebaPhp/vendor/slim/slim/Slim/CallableResolver.php
        </div>

это мой 'Mapas.php'

{
    public $id;
    public $nombre;
    public $descripcion;
    public $imagen;
    public function __construct($id, $nombre, $descripcion, $imagen)
    {
        $this->id = $id;
        $this->nombre = $nombre;
        $this->descripcion = $descripcion;
        $this->imagen = $imagen;
    }


}

это мой 'MapasController.php'

class MapasController
{

    private $dao;

    public function __construct(ContainerInterface $container)
    {
        $this->dao = new MapasDao($container['projectDao']);

    }


    function getMapas(Request $request, Response $response, array $args)
    {
        $mapas = $this->dao->getMapas();
        return $response->withJson($mapas);
    }

}

это мой 'MapasDao.php'

class MapasDao
{
    private $dbConnection;
    public function __construct(ProjectDao $dbConnection)
    {
        $this->dbConnection = $dbConnection;
    }

    public function getMapas()
    {
        $sql = "SELECT * FROM mapas";
        return $this->dbConnection->fetchAll($sql);
    }
}

и это маршрут, по которому я звоню

$app->get('/mapas', MapasController::class. 'getMapas');

Я не знаю, почему петиция get не читает' getMapas 'в' MapasController ', когда она должнаbe.

Также в URL-адресе отображается почтальон ('Project \ Mapas \ MapasControllergetMapas'). Я не понимаю, почему нет обратной косой черты или чего-либо между 'MapasController', которым является мой php-файл, и 'getMapas'которая является функцией внутри файла.

...