Эхо-элемент, если таблица сообщений - это empy cakephp - PullRequest
0 голосов
/ 14 марта 2012

В основном я пытаюсь отобразить элемент с неким базовым html сообщением «В настоящее время нет записей», если таблица сообщений пуста.

Структура БД имеет идентификатор, USER_ID, TITLE, BODY, CREATED, MODIFIED.

В индексе сообщений код выглядит следующим образом:

   if(!empty($posts['Post']['title'])) {
                    echo $this->element('postslist');
            } else {
                    echo $this->element('noposts');
            }

Проблема, с которой я сталкиваюсь, заключается в том, что элемент "noposts" отображается независимо от того, есть ли данные в этой таблице илинет .. Очевидно, я делаю что-то не так.

Любая помощь приветствуется!

edit:

Array
(
    [0] => Array
        (
            [Post] => Array
                (
                    [id] => 1
                    [user_id] => 0
                    [title] => debugging away
                    [body] => 
Laaaadeee daaaaa


                    [created] => 2012-03-27 17:05:36
                    [modified] => 2012-03-27 17:05:36
                )

        )

)

Ответы [ 4 ]

1 голос
/ 14 марта 2012

Попробуйте код, указанный ниже:

<code>echo "<pre>11111";print_r($posts);echo "
"; if (! empty ($ posts ['Post'] ['title'])) { echo $ this-> element ('postslist'); } еще { echo $ this-> element ('noposts'); }

После обновления страницы опубликуйте вывод.

1 голос
/ 14 марта 2012

Перед попыткой if

debug(var_dump($posts['Post']['title']));

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

0 голосов
/ 17 марта 2012
you can print the array using

debug($posts);

and check whether $posts['Post']['title'] contains value or not and then try

if(!empty($posts['Post']['title'])) {
      echo $this->element('postslist');
} else {
      echo $this->element('noposts');
}

or you can use isset() function instead of empty() to do the same
0 голосов
/ 14 марта 2012

Полагаю, вы забыли цикл foreach (при условии, что $ posts содержит несколько сообщений)

foreach ($posts as $post) {
    if(!empty($post['Post']['title'])) {...}
}

всегда целесообразно сначала отладить вашу переменную / массив перед тем, как отказаться от нее и опубликовать ее здесь в stackoverflow и т. Д., В 99% случаев это решает проблему за считанные секунды.

...