Zend Paginator для пустого массива, как обрабатывать - PullRequest
0 голосов
/ 10 февраля 2012

это мой код:

$message = $mapper->getByReceiverId($currentUser["id"]);

    $paginator = Zend_Paginator::factory($message);

как обработать, если $ message равно нулю (нет записей в базе данных)?

я получаю ошибку:

    Message:
"No adapter for type NULL"

спасибо за любую помощь

1 Ответ

0 голосов
/ 10 февраля 2012

Что-то вроде:

$message = $mapper->getByReceiverId($currentUser["id"]);
if (!$message){//or $message === null, depends on what GetByReciever() returns
    $paginator = null;
} else { 
    $paginator = Zend_Paginator::factory($message);
}

Вы также можете добавить if () в метод вашей модели, например:

if ($result){
    return $result;
} else {
    return array();
}

возвращение пустого массива () должно как минимум предоставить действительный адаптер для $ paginator.
Возможно, было бы лучше, если бы вы инициализировали адаптер paginator в вашей модели:

public function someThingPaginatorAdapter() {

    $this->select();
    //build your select() query

    $adapter = new Zend_Paginator_Adapter_DbTableSelect($select);

    return $adapter;

таким образом, те методы, которым требуется разбиение на страницы, будут встроены в запрос, и вам не придется беспокоиться о том, что он возвращает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...