Контроллер Igniter - нельзя использовать сегмент uri-> с функцией index ()? - PullRequest
1 голос
/ 30 марта 2010

Я работаю с воспламенителем кода, и по какой-то причине URL http://mysite.com/account/100 выдает ошибку 404, но http://mysite.com/account действительно работает. Вот как выглядит мой контроллер account.php.

   class account extends Controller {


    function account()
    {
      parent::Controller();
    }

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

Есть идеи, что случилось?

Ответы [ 3 ]

3 голосов
/ 30 марта 2010

Я только что протестировал простой класс учетной записи, как у вас, и он пытается вызвать 100 как метод учетной записи, вместо этого ваш URL после index.php должен быть account / index / 100, и он работает нормально.

Это может быть решено с использованием, например, маршрутизации.

$route['account/(:num)'] = "accounts/index/$1";

это то, что вы ищете. Вы можете просмотреть руководство пользователя URI Routing . для получения дополнительной информации.

CodeIgniter требует, чтобы имя вашего контроллера было заглавным, а имя файла строчными, поэтому попробуйте изменить ваш контроллер на.

class Account extends Controller { }

и ваше имя файла account.php

0 голосов
/ 05 февраля 2017

Это не работает, потому что когда вы запрашиваете http://example.com/account,, он выглядит как index () метод.Но при запросе http://example.com/account/100, ищет метод 100 () .Которого нет.Вы можете настроить код следующим образом.

class account extends Controller {
 public function account()
 {
   parent::Controller();
 }

 public function index()
 {
  echo 'hello';
 }

 public function id(){
  echo $this->uri->segment(2);
 }
 public function alternative($id){
  echo $id;
 }
}

вы будете называть URL следующим образом: http://example.com/account/id/100

или вы можете сделать так

0 голосов
/ 03 января 2014

Добавьте этот маршрут, и вы хороши

$route['account/(:any)'] = "account/index/$1";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...