Тренируюсь в коде, пишу небольшую CRMку для обработки заявок Вообщем, вот такой вопрос. в MySQL есть 2 таблицы application_list (тут сами заявки находятся) application_comments (тут комментарии к заявкам с id_applications) Суть вот какая: Список заявок формируется следующим образом: ===== файл Routes.php из текущего url получается данные: PHP: $controllerName = ApplicationController; $actionName = actionList; $controllerObject= new $controllerName; $result= call_user_func_array(array($controllerObject, $actionName), $parameters); ===== Файл ApplicationController PHP: public function actionList($link) { $result = array(); $result = Applications::getApplicationsList(); //Подключаем шаблон вывода require_once(ROOT . '/views/applications/applications.view.list.php'); return true; } ===== Файл applications.view.list.php все нормально выводится и прогоняется через foreach PHP: foreach($result as $row) { echo $row['fname']; //в таком виде и прочие параметры /*тут хочу чтобы выводились комментарии к заявке. Делаю вот так*/ $comments = new ApplicationsController(); $comments->actionComments($row["id"]); } ====== Класс ApplicationsController метод actionComments PHP: public function actionComments($id) { if($id) { $comments_result = array(); $comments_result = Applications::getApplicationsComments($id); } //Подключаем шаблон вывода require_once(ROOT . '/views/applications/applications.view.comments.php'); if($comments_result != NULL) { return true; } } ===== Файл getApplicationComments PHP: public static function getApplicationsComments($id) { $db = Db::getConnection(); //Соединяемся в БД $ApplicationsComments = array(); //Создаем пустой массив $result = $db->query('SELECT * FROM '.PREF.'applications_comments WHERE `id_applications`= "'.$id.'" ORDER BY date ASC'); $i=0; /* * Приводим данные к более красивому виду */ while($row = $result->fetch()) { $ApplicationsComments[$i]['id'] = $row['id']; $ApplicationsComments[$i]['date'] = $row['date']; $ApplicationsComments[$i]['id_applications'] = $row['id_applications']; $ApplicationsComments[$i]['id_manager'] = $row['id_manager']; $ApplicationsComments[$i]['text'] = $row['text']; $i++; } return $ApplicationsComments; } ====== Вот тут и проблема начинается. Если прямо в actionComments() вывести var_dump($comments_result);, то выйдет массив в том месте где мне и надо, вот такого вида: PHP: array(2) { [0]=> array(5) { ["id"]=> string(4) "1092" ["date"]=> string(10) "1482945716" ["id_applications"]=>string(4) "1141" ["id_manager"]=>string(1) "2" ["text"]=> string(46) "Текст комментария" } [1]=> array(5) { ["id"]=> string(4) "1092" ["date"]=> string(10) "1482945716" ["id_applications"]=>string(4) "1141" ["id_manager"]=>string(1) "2" ["text"]=> string(46) "Текст комментария" } } Если я пытаюсь вывести vur_dump или прогнать через foreach в файле require_once(ROOT . '/views/applications/applications.view.comments.php'), то выходит пустой результат.
Я всё не читал, но предположу что ты пытаешся вывести локальную переменную вне функции (класса). Попробуй инициализировать её в начале файла, а значения присваивать там где и сейчас.
проблема в том что не инклудится файл /views/applications/applications.view.comments.php В шаблоне вывода application.view.list.php (список заявок) идет вставка $comments = new ApplicationsController(); $comments->actionComments($row["id"]); ApplicationController -> actionComment код Код (Text): public function actionComments($id) { if($id) { $comments_result = array(); $comments_result = Applications::getApplicationsComments($id); /*вот так информация не выводится, даже тестовая надпись*/ require_once(ROOT . '/views/applications/applications.view.comments.php'); /*если прям тут перебирать, то выводится инфрмация*/ echo '<ul class="view_comments">'; foreach($comments_result as $row) { echo '<li>'.$row["text"].'</li>'; } echo '</ul>'; return true; } }