2013-06-26 109 views
1

在試圖嘗試縮小我查詢了,我還是很新的笨框架...全球MySQL查詢在笨

我想定義全局變量(例如在自動加載傭工)和使用全局mysql查詢整個我的網站 - 但我不明白如何做後者(全局mysql查詢)。

我理解在助手中定義單個變量的概念......並且我理解在模型中創建單個mysql查詢的概念,將它加載到控制器中並在視圖文件中使用它(使用foreach循環)。

如何創建一個可以自動加載(或任何)並在我的網站上的任何地方使用的mysql查詢 - 無需將其加載到每個控制器中?

+0

您不會在視圖中運行查詢。我希望你瞭解MVC是如何工作的,否則請閱讀[this](http://ellislab.com/codeigniter/user-guide/overview/mvc.html)。如果您使用活動查詢,則在控制器中創建它,如果不使用,則在模型中創建。結果被賦予傳遞給視圖文件的變量(如[this](http://ellislab.com/codeigniter/user-guide/general/views.html))。 – machineaddict

+0

@machineaddict,我希望你明白如何[MVC](https://en.wikipedia.org/wiki/Model_view_controller)的作品,因爲**笨不執行它**。 –

+0

我明白MVC;我不知道在哪裏(以及如何)創建全局查詢本身(模型,幫手等),然後如何在視圖中使用它(foreach循環或任何其他)。當我google「codeigniter全局mysql查詢」我從其他人那裏得到了很多結果,這些結果比我的複雜和具體問題要複雜得多 - 我只是想讓我的頭腦基本瞭解 - 我的問題是否有意義? – user2505513

回答

0

這可能幫助..車型很可能是你最好的選擇。下面我詳細介紹瞭如何使用controlelrs/models/libraries,我會把我的mysql代碼放到合適的模型文件中。和經由任何控制器稱之爲

//庫/ profiles.php

class My_library 
    { 
    protected $CI; 

    public function __construct() 
    { 
     $this->CI =& get_instance(); // Existing Code Igniter Instance 
    } 

    public function my_lib_method() 
    { 
     // Your Code Here 
     // can communicate back with CI by using $this->CI 
     // $this->CI->load->view(....); 
     // $this->CI->load->model(...); 
     // ETC 
    } 
    } 

//模型/ my_model.php

class My_model extends CI_Model{ 

    public function my_mdl_method(){ 
     // Your Code Here 
    } 

    } 

//控制器/ my_controller.php

class My_controller extends CI_Controller 
    { 
    public function my_ctrl_method(){ 
     $this->load->library('my_library'); 
     $this->load->model('my_model'); 

     // calling a library method 
     $this->my_library->my_lib_method(); 

     // calling a model method 
     $this->my_model->my_mdl_method();  
    } 
    } 
+0

您的'my_lib_method'「應該」返回結果並在'my_ctrl_method'中分配給某個變量,然後傳遞給最終視圖。因爲結果通常不是直接「回顯」。只是一個想法... – machineaddict