2014-04-01 25 views
0

這是我如何輸出我的查詢結果,但我想知道,如果這是正確的方式.. 因爲我在做我的看法一些PHP邏輯,我更喜歡它在我的控制員,不是嗎?Codeigniter正確的方式來顯示查詢結果

有人可以告訴我這是應該如何完成的方式,或者我可以如何改進我的代碼?

位指示:

public function reservations() 
{ 
    $this->load->model('admin_model'); 
    $data = $this->admin_model->get_reservations(); 

    $this->load->view('view_reservations', $data); 
} 

型號:

function get_reservations() 
{ 
    $this->db->select('*'); 
    $this->db->from('t_reservation'); 
    $data['query'] = $this->db->get(); 

    return $data; 
} 

查看:

那麼,有沒有辦法有一個PHP的邏輯了我的觀點,把某處在我的控制器中,並有更清晰的視圖?

回答

2

您的觀點應該儘可能少的PHP。

你的控制器應該有$data聲明,你的模型應該從數據庫返回數據。

你的循環似乎有點不必要。你真的只想要一個'開始日期'和'結束日期'。您可以將其放入模型或控制器中,具體取決於您是否每次撥打get_reservations時都要返回這些值。

控制器

public function reservations() 
{ 
    $this->load->model('admin_model'); 
    $data['reservations'] = $this->admin_model->get_reservations(); 
    $this->load->view('view_reservations', $data); 
} 

型號

function get_reservations() 
{ 
    $reservations = $this->db->get('t_reservation')->result(); 

    foreach ($reservations as $reservation) 
    { 
     $reservation->start_date = date("d-m-Y", strtotime($reservation->date)); 
     $reservation->end_date = date("d-m-Y", strtotime(date("Y-m-d", strtotime($reservation->date)) . " +".$reservation->days." day")); 
    } 

    return $reservations; 
} 

查看 我已經編輯你的看法,我猜你想在一個單獨的行中的每個結果呢?

<? foreach ($reservations as $reservations): ?> 
    <div class="row"> 
     <?= $reservation->name ?> 
     <?= $reservation->price ?> 
     <?= $reservation->start_date ?> - <?= $reservation->end_date ?> 
    </div><!-- /.row --> 
<? endforeach ?> 

根據您想如何顯示你的數據,你可以有控制器內的foreach循環,並加載多個視圖:

控制器

public function reservations() 
{ 
    $this->load->model('admin_model'); 
    $reservations = $this->admin_model->get_reservations(); 

    foreach ($reservations as $reservation) 
    { 
     $data['reservation'] = $reservation; 
     $this->load->view('view_reservation', $data);  
    } 
} 

查看

<div class="row"> 
    <?= $reservation->name ?> 
    <?= $reservation->price ?> 
    <?= $reservation->start_date ?> - <?= $reservation->end_date ?> 
</div><!-- /.row --> 
+0

那'事實上,我的方式更加清潔,我也希望它成爲現實。非常感謝! –