2012-06-10 2 views
0

Допустим, у меня есть следующие:Kohana ORM печати, если пустой

$categories = ORM::factory('category')->find_all(); 
foreach ($categories as $category) : 
echo $category->category_title; 
foreach ($category->posts->find_all() as $post) : 
echo $post->post_title; 
endforeach; 
endforeach; 

Он печатает:

Category One 
Post One 
Category Two 

Category Three 
Post Two 
Category Four 
Post Three 

Разрыв означает, что нет там пост.

То, что я хочу, чтобы напечатать это:

Category One 
Post One 
Category Two 
No Post 
Category Three 
Post Two 
Category Four 
Post Three 

Поэтому в основном я хочу:

foreach ($posts->find_all() as $post) : 
if post exists 
echo $post->post_title; 
else 
No Post 
endforeach; 

Как мне это сделать?

+0

Редактировать к включите категории, чтобы лучше понять, чего я пытаюсь достичь. – markerpower

ответ

1

Я предполагаю, что вы используете Kohana 3.2 и ORM.

Заканчивать гид: http://kohanaframework.org/3.2/guide/orm/using

Существует раздел под названием Убедитесь, что ОРМ загружен запись

if ($post->loaded()) 
{ 
    echo $post->post_title; 
} 
else 
{ 
    echo 'No Post'; 
} 

В том числе категории из обновленного вопроса:

$categories = ORM::factory('category')->find_all(); 
foreach ($categories as $category) 
{ 
    $posts = $category->posts->find_all(); 
    if (count($posts) > 0) 
    { 
     echo $category->category_title; 
     foreach ($posts as $post) 
     { 
      echo $post->post_title; 
     } 
    } 
    else 
    { 
     echo 'No Posts'; 
    } 
} 
+0

Во время моих поисковых запросов Google я попробовал это, но никогда не печатает No Post. – markerpower

+0

Возможно, он не печатает сообщения, потому что в категории нет сообщений. Вы должны добавить чек, чтобы узнать, действительно ли в категориях $ category-> posts-> find_all() есть сообщения – SpadXIII

Смежные вопросы