Codeigniter URI类我如何使用 - 连字符而不是_下划线?

时间:2015-06-07 10:04:42

标签: php codeigniter url

我尝试使用 - 连字符创建一些控制器,模型和视图,但我总是得到php错误,所以我现在使用下划线。

所以我的网址是: http://localhost:8888/ci/index.php/get_artist_discography/artist_name

我想是这样的: http://localhost:8888/ci/index.php/get-artist-discography/artist-name

它可能有url - 在codeigniter中连字符?

我的代码:

/控制器:

 u1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String un1 = "https://drive.google.com/open?id=0B_i97Zc2yxeSNFJMVXFGQmlXYzQ&authuser=0";

            Intent i = new Intent(Intent.ACTION_VIEW);
            i.setData(Uri.parse(un1));
            startActivity(i);
        }
    });

/型号:

    <?php 
include (APPPATH.'/libraries/REST_Controller.php');
class get_artist_discography extends REST_Controller {

    function artist_name_get(){

    $data = new stdClass();
    $this->load->model('artist_model');
    $data = $this->artist_model->getAll();$this->response($data, 200);


    }

}

2 个答案:

答案 0 :(得分:14)

如果你正在使用Codeigniter 3打开你的config / routes.php

$route['translate_uri_dashes'] = TRUE;

答案 1 :(得分:11)

是的,你可以。

通常CI会生成类似于base_url / Controller_name / Method_name的url。

如您所知,控制器名称和方法名称不能包含“ - ”(连字符),因此您无法更改其名称。

您可以使用路由器显示具有相应网址的正确控制器。

就像你可以在config / routes.php上编写这段代码

$route['get-artist-discography/artist-name'] ='get_artist_discography/artist_name';

如果您的链接为get_artist_discography

,这将执行您的artist_name控制器和http://localhost:8888/ci/index.php/get-artist-discography/artist-name方法

您可以详细了解URI Routing at CI docs