2013-08-07 52 views
0

我試圖瞭解如何做的是在沒有從數據庫查詢返回結果時向用戶顯示一條消息截至目前,我的查詢工作正常。在這種情況下,消息變量的計數爲0,那麼我想要做的是顯示一條消息,說明發件箱中沒有個人消息,其中包括不顯示錶格。我們正在將設置對象屬性的行移動到下面的代碼上面,然後設置兩個單獨的構建方法:一個用於有結果時,另一個用於沒有結果,然後在沒有結果的情況下,我會擁有它建立一個只是說隨機消息的視圖。嘗試顯示沒有結果的消息

對於模板庫我目前使用Phil Sturgeon的模板庫。

https://github.com/jeffreydavidson/codeigniter-template

我正在尋找這個一些更好的機會。任何人可以協助?

$messages = $this->messages->get_many_by('sender_id', $this->session->userdata('user_id')); 
//vardump($messages); die(); 

if (count($messages > 0)) 
{ 
    $tmpl = array('table_open' => '<table class="table table-bordered table-condensed table-striped table-vertical-center checkboxs js-table-sortable">', 'row_start' => '<tr class="selectable">'); 
    $this->table->set_template($tmpl); 
    $this->table->set_heading('', 'To', 'Subject', 'Date', 'Actions'); 

    foreach ($messages AS $message) 
    { 
     $this->table->add_row('', $message->receiver_id, $message->subject, date('F d, Y', strtotime($message->date_sent)), '<a href="'. site_url() .'wrestling-manager/personal-messages/sent/delete/' . $message->id .'" class="btn-action glyphicons remove_2 btn-danger"><i></i></a>'); 
    } 
} 
else 
{ 
    echo 'test'; 
} 

$this->template 
    ->title('Personal Messages Sent')->set_layout('control_panel_view') 
    ->set_partial('sidebar', 'partials/sidebar') 
    ->set('user_data', $this->user->with('character')->get($this->session->userdata('user_id'))) 
    ->build('sent_view'); 

回答

2

if (count($messages > 0))應該是:if (count($messages) > 0)如果

不知道,這將解決您的問題(一個或多個),但它會在正確的方向開始。

+0

這是一個很好的觀點,我感謝你,但這並沒有回答這個問題。 – user2576961

+0

它從這個角度回答了這個問題:if語句不會以其他方式運行。 – Vector

+0

是的,這是真的,但問題的重要部分不僅僅是固定一行代碼,儘管這很重要。 – user2576961

2

建議您首先讓您的應用程序在沒有模板庫的情況下運行 - 這將強制執行所需的分離。您的控制器管理應用程序決策的流程,但應該沒有關於顯示的信息。所以,如果有個人信息的查詢

  • 控制器接收請求,以搜索個人信息
  • 搜索輸入過濾/搜索執行/結果返回
  • 控制器說 - 如果沒有結果 - 然後去無結果的方法。也許控制器也傳遞了一個數據結構,其中包含搜索詞或其他相關信息給用戶。

如何顯示結果 - 儘可能保持獨立。所以即使在控制器中有一些特定於模板的方法,它們也可以清楚地分開。回報:快速和容易地改變設計,模板等。