Поэтому я использую PHP slimframework (https://www.slimframework.com/) для простого API, который мне нужно использовать в приложении React, и я не могу заставить свой запрос работать с этими параметрами, потому что $ start_date и $ end_date не возвращаются что-нибудь из запроса GET. Этот запрос MySQL работает так, как должен, я уже проверил его с помощью startDate и endDate. Возвращаюсь из своего приложения React, проблема в том, что я не могу понять, как вернуть данные из этих запросов GET в мой $ Переменные start_date и $ end_date.
Вот так выглядит мой бэкэнд (slimframework):
<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
$app = new \Slim\App;
$app->get('/api/date', function(Request $request, Response $response){
$start_date=date('Y-m-d H:i:s', $_GET['startDate']);
$end_date=date('Y-m-d H:i:s', $_GET['endDate']);
// $start_date = $app->request()->params('startDate');
// $end_date = $app->request()->params('endDate');
// $start_date = $request->getAttribute['startDate'];
// $end_date = $request->getAttribute('endDate');
$sql = "SELECT * FROM `datescalendar` where `date` BETWEEN '{$start_date}' AND '{$end_date}'";
// $sql = "SELECT * FROM `datescalendar` where `date` BETWEEN '1525679047' AND '1526283847'";
try{
// Get DB Object
$db = new db();
// Connect
$db = $db->connect();
$stmt = $db->query($sql);
$dates = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
// return $response->withJson($dates);
echo json_encode($dates);
} catch(PDOException $e){
echo '{"error": {"text": '.$e->getMessage().'}';
}
});
Вот как я получаю данные из API в моем приложении React:
fetchNewDatesNext() {
const startDate = this.state.startDate.unix();
const endDate = this.state.startDate.add(1, 'week').unix();
axios.get(`http://localhost/api/date?startDate=${startDate}&endDate=${endDate}`).then((response) => {
this.setState(() => ({ data: response.data}));
});
};
Приложение работает так, как должно, когда я просто запрашиваю все сразу из базы данных ($sql = "SELECT * FROM datescalendar
)
Есть идеи?