How to change url of GET method form to slashes in codeigniter 3 [duplicate]

杀马特。学长 韩版系。学妹 提交于 2020-01-05 13:14:23

问题


I can not find a solution to my problem, if my question is a duplicate, please provide a reference link. so I need your help. Here's for example:

localhost/ci/index.php/search/?song=sheila+on+7

to be

localhost/ci/index.php/search/sheila_on_7

or

localhost/ci/index.php/search/song/sheila_on_7

Thanks.


回答1:


CodeIgniter optionally supports this capability, which can be enabled in your application/config.php file. If you open your config file you'll see these items:

$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';

If you change "enable_query_strings" to TRUE this feature will become active. Your controllers and functions will then be accessible using the "trigger" words you've set to invoke your controllers and methods:

index.php?c=controller&m=method

More Information can be found in the CodeIgniter URLs users guide




回答2:


You have to change form method from GET to POST. Inflector helper has function you can use, or you can use str_replace() PHP function too. Than something like this:

<?php defined('BASEPATH') OR exit('Not your cup of tea');

class Search extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->helper('inflector');
    }

    public function song($song)
    {
        $song = underscore($this->input->post('song'));//name of field in view which becomes sheila_on_7

        //use variable for DB search or what ever you need

        //$data['song'] = $this->Song_m->get('title', $this->input->post('song'));

        //$this->load->view('search', $data);

    }
}


来源:https://stackoverflow.com/questions/34694848/how-to-change-url-of-get-method-form-to-slashes-in-codeigniter-3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!