2016-07-23 53 views
2

我有一個錯誤,當我做這樣的事情:重定向到index()函數時,函數並不笨_remap()函數發現

public function _remap() 
    { 
     $firstURISegment = $this->uri->segment(1); 
     $secondURISegment = $this->uri->segment(2); 
     if($firstURISegment == "user") 
     { 
      if($secondURISegment == "") 
      { 
       echo "USER INDEX"; 
      } 
      else 
      { 
       $this->$secondURISegment(); 
      }     
     } 
     else 
     { 
      echo $firstURISegment;    
     } 
    } 

當我調用一個函數,我得到這個錯誤,是不是在這個類中由這個www.example.com/user/abcd定義。

Fatal error: Call to undefined method user::abcd() in C:\xampp\htdocs\livears\application\controllers\user.php on line 17 
A PHP Error was encountered 

Severity: Error 

Message: Call to undefined method user::abcd() 

Filename: controllers/user.php 

Line Number: 17 

Backtrace: 

不是這個錯誤,我想重定向到這個類的index()函數。我怎麼能夠 ?在routes.php用於獲取www.example.com/username,而不是www.example.com/user/username

$route[':any'] = 'user/$1'; 

: 並請看,我已經做到了這一點。因爲我的用戶類有其他功能,我重新調用,但如你看到的,如果我調用一個未定義的函數,我得到一個Fatal error。請幫我重定向。

+0

只是一個註釋:CI 3的版本,你必須**的第一個字母只有**的類和文件名大寫User.php – user4419336

+0

@ wolfgang1983 Ohkk ..謝謝 – prashant0205

回答

0

首先控制器的名稱應與大寫字母

你_remap沒有做任何事情來重定向開始。像這樣使用它

public function _remap() 
    { 
     $firstURISegment = $this->uri->segment(1); 
     $secondURISegment = $this->uri->segment(2); 
     if($firstURISegment == "user") 
     { 
      if($secondURISegment == "") 
      { 
       echo "USER INDEX"; 
      } 
      else 
      { 
       If (function_exists ($secondURISegment)) 
      { $this->$secondURISegment();} 
       else { 
        redirect('index'); 
        } 
      }     
     } 
     else 
     { 
      echo $firstURISegment;    
     } 
    } 

你明白了嗎?現在在你的代碼中實現它?

+0

它沒有工作.. – prashant0205

+0

它不會工作如果你輸入這裏寫的是什麼。你必須根據你的代碼來定製它。我剛剛提出了這個想法應該如何發生 –