2011-05-24 111 views
0

使用CodeIgniter編寫網站我知道$ _GET請求現在用於像www.website.com/function/value ..並在控制器獲取url部分寫入像這樣:Codeigniter - 檢查是否發出GET請求

$userId = $this->uri->segment(3, 0); 

我只是想知道,當控制器的負荷,我想檢查是否有任何URI段,如果有則推到一個視圖,否則,如果心不是一個URI段推到另一個。

這可能嗎?

歡呼聲。

回答

-2

我我仍然沒有使用codeigniter的版本2,但是這個框架不接受get請求;除非你搞亂配置。這裏有一個函數$ this-> input-> get('myGet'),你應該看看de codeigniter.com/user_guide

+0

它接受請求...未獲取變量... – Peter 2011-05-24 20:52:21

+0

現在它接受獲取請求並獲取變量。 – 2012-12-15 16:12:09

+0

你怎麼能不接受請求並提供服務?顯然這是這個頁面上最正確的答案 – 2013-07-09 13:38:33

5

你也可以使用你的控制器參數。

訪問當/用戶/簡檔/ 1控制器命名用戶將調用方法輪廓()並通過數作爲第一個參數到您的方法。像這樣:

class User extends CI_Controller { 
{ 

    public function index() 
    { 
     $this->load->view("user_index"); 
    } 

    public function profile ($userId = null) 
    { 
     if((int)$userId > 0) 
      $this->load->view("user_profile"); 
     else 
      $this->load->view("another_view"); 
    } 

} 

這是一個非常基本的示例,我只是試圖展示這個想法。

+2

+1 - 這是CI中的正確方法。儘管我希望支票被編碼爲'if(is_null($ userId))...' – leonbloy 2011-05-24 20:35:21

+0

is_null()可能也會更正確:) – Repox 2011-05-25 07:55:58

1

好像你問兩個問題...

首先要檢查請求得到


public function get_test() 
{ 
    if($_SERVER['REQUEST_METHOD'] == "GET") 
    { 
     //do something from get 
     echo "GET"; 
    } 
    else 
    { 
     //do something not get 
     echo "NOT GET"; 
    } 
} 

下一個問題似乎被檢查URI段


public function get_test() 
{ 
    if($_SERVER['REQUEST_METHOD'] == "GET") 
    { 
     //do something from get 
     //echo "GET"; 
     if($this->uri->segment(3)) //is true as is not empty 
     { 
      echo $this->uri->segment(3); 
     } 
     else 
     { 
      echo "I am nothing without my URI Segment"; 
     } 
    } 
    else 
    { 
     //do something not get 
     echo "NOT GET"; 
    } 
} 
0

據我所知你可以使用PHP默認值。

function myFunction($var1 = NULL) {... if($var1 === NULL) ...} 

現在,如果您不傳遞參數,您將獲得NULL值。