Я новичок со 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'которая является функцией внутри файла.