0

我正在尝试学习如何向用户显示一条消息,通知他们尝试从数据库中删除内容页面的错误或成功消息。我想知道到目前为止我是否做得对。如果我是我在视图中所做的事情?

控制器

/**
 * Content_pages::delete_content_page()
 * 
 * Deletes a content page from the list of content pages.
 * 
 * @param string $content_page_id The id of the content page being deleted.
 * @return void
 */
public function delete_content_page($content_page_id)
{
    $status = 'unprocessed';
    $title = 'Action Unprocessed';
    $message = 'The last action was rendered unprocessed. Please try again.';
    if (isset($content_page_id) && is_numeric($content_page_id))
    {
        $content_page_data = $this->content_page->get($content_page_id);
        if (!empty($content_page_data))
        {
            $this->content_page->update($content_page_id, array('status_id' => 3));
            if ($this->db->affected_rows() > 0)
            {
                $status = 'success';
                $message = 'The content page has been successfully deleted.';
                $title = 'Content Page Deleted';   
            }
            else
            {
                $status = 'error';
                $message = 'The content page was not deleted successfully.';
                $title = 'Content Page Not Deleted';   
            }
        }
    }
    $output = array('status' => $status, 'message' => $message, 'title' => $title);
    $this->session->set_flashdata('output', $output); 
    redirect('content-pages/list');
}

/**
 * Content_pages::list_content_pages()
 * 
 * List all of the content pages found in the database.
 * 
 * @return void
 */
public function list_content_pages()
{   
    $content_pages = $this->content_page->get_all();

    $data['output'] = $this->session->flashdata('output');

    $this->template
        ->title('Content Pages')
        ->set('content_pages', $content_pages)
        ->build('content_pages_view', $data);    
}

我的问题出在视图中,因为它显示为默认的空消息,所以我试图弄清楚如何在视图首次呈现时不显示它,并且只有在有消息要显示时才显示它。

if (isset($output))
{
    if ($output['status'] == 'success')
    {
        echo '<div class="alert alert-success">';
    }
    elseif ($output['status'] == 'error')
    {
        echo '<div class="alert alert-error">';
    }
    else
    {
        echo '<div class="alert alert-error">';
    }

    echo '<button type="button" class="close" data-dismiss="alert">&times;</button>';
    echo '<strong>' . $output['title'] . '</strong>' . $output['message'];
    echo '</div>';
}
?>
4

2 回答 2

1

我不确定您的自定义模板类对->title()->set()->build(). 但看起来你仍然在$data进入你的视野。

所以,你只是echo $output;在你看来。

编辑:

我认为$output仍然出现的原因是因为这些代码行不在 if 语句中:

echo '<button type="button" class="close" data-dismiss="alert">&times;</button>';
echo '<strong>' . $output['title'] . '</strong>' . $output['message'];
echo '</div>';

尝试将它们移动到 if 语句中,如果设置了它只会被打印出来$output

于 2013-08-31T01:21:00.340 回答
0

我已将默认值设置为会话闪存数据值,在这种情况下,首次加载时它会返回 false,因为如果没有设置数据,它会返回什么。所以我需要添加一个条件来检查该值是否为假。

于 2013-09-03T04:38:00.770 回答