0. Убедитесь в /etc/hosts, что домен
learning
относится к хосту 127.0.0.1
1. Проверьте вручную через консольную команду curl на том же самом сервере, что
http://learning/test/accept
возвращает какой-либо ответ
2. Проверяйте логи веб-сервера
access.log - был ли вообще запрос между двумя скриптами
error.log - были ли ошибки
3. В код
sendAction()
замените код, чтобы увидеть ошибку
if( ! $result = curl_exec($curl)) // чтобы проверить на наличие ошибки CURL или HTTP
{
trigger_error(curl_error($curl));
}
curl_close($curl);
echo $result; // чтобы видеть результат запроса
4. В коде
acceptAction()
добавьте код
$receive_data = json_decode($json,true);
if (json_last_error()) // чтобы проверить наличие ошибки декодирования JSON
{
trigger_error(json_last_error_msg());
}
-------------
А вообще логика вашего скрипта какая?
Я вижу, что
1. Первый скрипт выбирает пользователей из базы (без лимита, это страшно на продакшене)
2. Этот список пользователей посылается запросом из
public function sendAction()
на
http://learning/test/accept
в формате JSON
3. Этот JSON декодируется и передаётся в
$this->view->users
4. ... зачем?
-----------
Уточнённое решение
На одном сервере получить JSON и показать через шаблон
class TestController
{
public function showAction()
{
$json = file_get_contents("http://learning/test/users"); // получить данные со второго сервера
$users = json_decode($json, true);
$this->view->users = $users; // передать в представление
}
}
На втором сервере выбрать данные из базы и выдать в формате JSON
class TestController
{
public function usersAction()
{
$users = Users::find(); // получить из базы
// подготовиться к выдаче ответа в формате JSON
$this->view->disable();
$response = new \Phalcon\Http\Response();
$response->setStatusCode(200);
$response->setJsonContent($users);
$response->setContentType('application/json', 'UTF-8');
return $response;
}
}
По идее первый должен показать то, что хранится в базе в таблице user на втором сервере