Метод CakePHP find вылетает на живом сервере, когда несколько записей

Я сталкиваюсь со странной ошибкой в ​​CakePHP и не знаю, как выяснить, что происходит.
Я использую Ajax-запрос для загрузки динамических данных для dataTable, и он отлично работает на моем локальном хосте. По некоторым причинам я не могу заставить его работать на моем живом сервере, когда у меня есть больше чем несколько записей.
После отладки я обнаружил, что не работает функция поиска. Когда в моем массиве ответов больше нескольких записей, один из массивов (‘SollProject’) просто полностью пуст, и весь скрипт перестает работать.

Вот мой код:

        $project = $this->Project->find("first", array('conditions'=>array('id'=>$project_id) ,
'contain' => array(
'SollProject' => array(
'conditions'=> array(
'SollProject.date >=' => $year.'-01-01',
'SollProject.date <=' => $year.'-12-31'
)
),
'HabenProject'=> array(
'conditions'=> array(
'HabenProject.date >=' => $year.'-01-01',
'HabenProject.date <=' => $year.'-12-31'
)
))));

Любая идея, что я делаю не так здесь или почему он не работает на живом сервере? Там нет метода afterFind, если вам интересно.

Возможно я должен упомянуть, что я уже пробовал отладку ошибок, и я не получаю никаких сообщений об ошибках. Я также попробовал тот же код SQL на моем сервере SQL, и он работает отлично. Также нет проблем с памятью, так как память, которую я использую, намного лучше той, которую я обычно использую, и это всего лишь ответ json.
Сама функция также работает для небольших записей (не более 5 записей), но как только у меня появляется немного больше записей в базе данных, она просто вылетает.

Интересно то, что я могу debug($project['HabenProject']) и он показывает мне все HabenProject, но если я попробую debug($project['SollProject']) или просто debug($project) переменная просто пуста. Это даже не объявлено как массив. Там просто нет выхода. Остальная часть страницы все еще отображается.

0

Решение

Основные этапы отладки:

  • Установите отладку на 2
  • Проверьте ваши журналы приложений CakePHP
  • Проверьте логи php
  • Проверьте журналы веб-сервера

Тем не менее, я думаю, что это ограничение памяти и отладка отключена, поэтому, вероятно, вы получаете белую страницу. Проверьте использование памяти и увеличьте предел памяти php.

0

Другие решения

Хорошо, после многих отладок похоже, что я нашел проблему:
По какой-то причине каждая запись с Umlaut (äüö) в базе данных вызвала ошибку, из-за которой массив результатов функции find больше не работал.
Оказывается, проблема в том, что шифрование базы данных живого сервера utf-8 было закомментировано …

0

По вопросам рекламы [email protected]