Как выводить заглушку, если записей в БД нет?
Перед циклом проверять на пустоту $posts.$posts = R::findAll('posts');
  if ($posts) {
    foreach ($posts as $post) {
      echo '<p>', $post->description, '</p>';
    }
  } else {
    echo '<p>Пусто</p>';
  }
Для начала нужно проверить есть ли что нибудь в переменной $posts. Если не пусто - делаем foreach, если пусто - выводим что-либо.
Код на коленки (если что не так, поправьте)$posts = R::findAll('posts');

if($posts){
  foreach ($posts as $post) {
    echo '<p>', $post->description, '</p>';
  }
}else{
  return 'Данных нет';
}