データベースからコンテンツページを削除しようとしているユーザーからのエラーまたは成功メッセージを通知するメッセージをユーザーに表示する方法を学ぼうとしています。私はこれまでのところ、それを正しく行っているかどうか疑問に思っています。もし私がビューで何をしているのか?
コントローラ
/**
* 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">×</button>';
echo '<strong>' . $output['title'] . '</strong>' . $output['message'];
echo '</div>';
}
?>