2014-01-30 39 views
-1

是否可以在CodeIgniter的視圖文件中編寫查詢? 像下面的代碼。在codeigniter中可以在查看文件中寫入查詢

<?php 

    $query= $this->webpages->get_where_custom('parent_id',0); 
     foreach($query->result() as $row){ 
      $query1=$this->webpages->get_where_custom('parent_id',$row->id); 
       foreach($query1->result() as $row1){ 
        $row1->id; 
       } 
     } 
?> 
+0

是的,你可以執行並檢查。 ? – Nishanthan

+0

您可以執行查詢,但不能在視圖文件中調用控制器功能。請在使用前檢查它 – Sundar

+0

是的,但這是可怕的做法。視圖文件不應該關心邏輯,你可以試試? –

回答

0

爲什麼要在查看文件中顯示查詢?

總之,要打印最近執行的查詢:

echo $this->db->last_query(); 
2

查詢運行沒有任何問題。

但是在模型中爲您完成查詢任務的功能可以在您的應用程序中隨處使用。

您的視圖文件也是一個PHP文件,能夠使用您在配置文件中的設置連接到數據庫,但它實際上並不符合MVC模式的概念。

您還可以使用AJAX Calls爲您提供視圖文件中所需的數據!

注意:在這種情況下,由於查詢不是從模型運行的,因此database類必須是autoloaded或者加載到控制器中而不是模型中。

+0

我是Codeigniter的新手。我希望進行實時搜索,我該如何在Codeigniter中做到這一點? –

-1

你可以試試這個...

<?php 
$CI =& get_instance(); 
$query= $CI->webpages->get_where_custom('parent_id',0); 
    foreach($query->result() as $row){ 
     $query1=$CI->webpages->get_where_custom('parent_id',$row->id); 
      foreach($query1->result() as $row1){ 
       $row1->id; 
      } 
    } 
?> 

它不是按照MVC規則,但它是可能的。

0

是的,你可以在視圖中編寫查詢,但它不是標準的,也可以在控制器中,但模型最適合查詢執行。如果在視圖中運行查詢,以便在正常應用程序和基於MVC的模式應用程序中分開數據庫操作模型,查看查看和控制器以控制模型和視圖,則沒有任何區別。

簡單的控制器是模型和視圖的橋樑。所以最好的方法是將查詢寫入模型而不是控制器或視圖。

記住$this關鍵字不會在視圖中工作,因爲當我們創建模型或控制器,我們擴展了類class My_model extends CI_modelORclass My_controller extends CI_Controller所以$this參考當前的方法或對象,所以如果你不擴展模型或控制器,你可以」 t使用模型或控制器功能,因此$this關鍵字在擴展模型或控制器類時不起作用。