safenoob
@safenoob

Как диагностировать ошибки в php?

Делаю тестовое приложение на slim фреймворке:

Часть index.php
$app->get('/ticket/{id}', function (Request $request, Response $response, $args) {
        $ticket_id = (int)$args['id'];
        $mapper = new TicketMapper($this->db);
        $ticket = $mapper->getTicketById($ticket_id);
        $response->getBody()->write(var_export($ticket, true));
        return $response;
    });

    $app->get('/tickets', function (Request $request, Response $response) {
        $this->logger->addInfo("Ticket list");
        $mapper = new TicketMapper($this->db);
        $tickets = $mapper->getTickets();
        $response = $this->view->render($response, "tickets.phtml", ["tickets" => $tickets]);
        return $response;
    });


Файл шаблона:
<?php foreach($data['tickets'] as $ticket): ?>
    <tr>
        <td><?=$ticket->getTitle() ?></td>
        <td><?=$ticket->getComponent() ?></td>
        <td><?=$ticket->getShortDescription() ?> ...</td>
    </tr>
<?php endforeach; ?>


Ругается что не может вызвать функцию Call to a member function getTitle(). Я не могу понять где прописать эти 3 функции? В классе TicketMapper уже прописал:
function getTitle(){
        return 'Заголовок';
    }
  • Вопрос задан
  • 252 просмотра
Решения вопроса 2
VladimirAndreev
@VladimirAndreev
php web dev
у тебя $ticket должно быть инстансом какого-то класса.
а что там на самом деле - фиг его знает, но у него нету метода getTitle.
для начала - var_dump($ticket); - что выводит?
Ответ написан
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Вы не ту часть ошибки выделили:
Call to a member function getTitle() on a non-object

Ну а что делать дальше, вам уже Андрей подсказал.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы