doukong5394
2014-08-05 07:31
浏览 83
已采纳

将参数传递给CodeIgniter中的index()

I have the following structure for my application:

myapp/index.php: index page
myapp/mycont/myfunc/productID: dedicated page for product

index.php has links that open up myapp/mycont/myfunc/productID

Hence, the controller functions are defined as:

index() {...}
myfunc($id) {...}

As, both my functions are almost same I wanted to remove the myfunc() function and change the URLs as:

myapp/: index page
myapp/productID: dedicated page for product

Both the above URLs should use index() function, but the index function throws error if I try to pass parameters to it.

图片转代码服务由CSDN问答提供 功能建议

我的应用程序具有以下结构:

  myapp  /index.php:索引页
myapp / mycont / myfunc / productID:产品的专用页
   
 
 

index.php 有链接 打开 myapp / mycont / myfunc / productID

因此,控制器功能定义为:

   index(){...} 
myfunc($ id){...} 
   
 
 

因为,我的两个函数几乎相同,我想删除< code> myfunc()函数并将URL更改为:

  myapp /:index page 
myapp / productID:product 
 的专用页面  
 
 

上述两个URL都应该使用 index()函数,但如果我尝试将参数传递给它,则索引函数会抛出错误。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • douwang6635 2014-08-05 08:00
    已采纳

    Pass parameter to index function in CI:

    1) You need the index segment http://www.example.com/search/index/search-keyword.
    2) Or you need to use a route $route['search/(:any)'] = 'search/index/$1';
    3) Or try remap: https://ellislab.com/codeigniter/user-guide/general/controllers.html#remapping


    Edit (sample):

    $route['abc/campaigns/add_webengage_feedback_leads'] = "abc/campaigns/add_webengage_feedback_leads";
    $route['abc/campaigns/add_webengage_survey_leads'] = "abc/campaigns/add_webengage_survey_leads";
    $route['abc/campaigns/add_canvass_data'] = "abc/campaigns/add_canvass_data";
    $route['abc/campaigns/add_connecto_data'] = "abc/campaigns/add_connecto_data";
    $route['abc/campaigns/(:any)'] = "abc/campaigns/index/$1";
    

    Note: The URL mapping to the index function should be last.

    打赏 评论
  • dougan5772 2014-08-05 07:37

    Assuming that you have removed the index.php from your URL, you can go by this flow,

    function index(){
        if( $this->uri->segment(3) ){     //if an product id is set
            $id = $this->uri->segment(3); //this is the product id in third segment of URL
        }else{                            //display the normal index page
    
        }
    }
    
    打赏 评论

相关推荐 更多相似问题