Как передать параметр после baseurl в codeigniter? - PullRequest
0 голосов
/ 27 декабря 2018

Базовый URL: http://localhost/f1/

, и я передаю параметр в URL, например: http://localhost/f1/user1

, и я пытаюсь напечатать

function index(){
    echo $this->uri->segment(2);
}

Я хочунапечатать User1 в контроллере.Как этого добиться?

Ответы [ 6 ]

0 голосов
/ 04 января 2019

Сконфигурируйте свой маршрут и добавьте следующее:

$route['Controller_Name/(:any)'] = 'Controller_Name/index/$1';

Вот вам и ваш контроллер

class Controller_Name extends CI_Controller {
  function index($prm){
    echo $prm;
  }
}

Получайте удовольствие .... вы можете иметь сколько угодно Uri ....

0 голосов
/ 28 декабря 2018

проверьте, загружен ли вы помощником по URL.Только тогда все будет работать как положено.Либо автоматически загрузите его, либо позвоните в контроллер.

0 голосов
/ 28 декабря 2018

определяет ваш контроллер в config / rout.php.it будет вызывать вашу индексную функцию по умолчанию.

$route['default_controller'] = 'controllername';
0 голосов
/ 27 декабря 2018

Что я понял из вашего вопроса, так это то, что вы хотите переотображать без использования вашего метода и передавать параметр непосредственно после вашего контроллера?

Вы можете использовать _remap и проверить, соответствует ли он методу, обрабатывают его нормальноили передайте его методу по умолчанию напрямую, и теперь вам не нужно будет использовать index в своем URL-адресе, как вы предполагали.

public function _remap($method)
{
        if ($method === 'some_method_in_your_controller')
        {
                $this->$method();
        }
        else
        {
                $this->index($method);
        }
}

Теперь давайте скажем, что ваш URL-адрес похож на http://localhost/controller/parameter, тогда, если этоПараметр соответствует методу, который вызовет этот метод, если нет, он передаст его в качестве параметра index.

0 голосов
/ 27 декабря 2018

После base_url segemnts / параметр может получить вот так

Убедитесь, что base_url и URL-помощник установлены в файле application/config/config.php и application/config/autoload.php соответственно

Предположим, вызовфункция с тегом привязки

<a href="<?= base_url('HomeController/index/'.$url1)?> ">Index</a>

В приведенной выше строке HomeController является именем контроллера, index в имени функции и $url1 является параметром

class HomeController extends CI_Controller {

    public function index($url1){
         echo $url1;
    }
}

Также можно использовать $this->uri->segment().

0 голосов
/ 27 декабря 2018

Читать здесь https://www.codeigniter.com/userguide3/general/controllers.html -> Passing URI Segments to your methods

/products/shoes/sandals/123

<?php
class Products extends CI_Controller {

        public function shoes($sandals, $id)
        {
                echo $sandals;
                echo $id;
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...