Вы не можете загрузить контроллер из контроллера в CI - если вы не используете HMVC или что-то еще.
Вы должны немного подумать о своей архитектуре.Если вам нужно вызвать метод контроллера из другого контроллера, то вам, вероятно, следует абстрагировать этот код в помощник или библиотеку и вызвать его из обоих контроллеров.
UPDATE
После прочтения вашего вопроса я понимаю, что вашей конечной целью является не обязательно HMVC, а манипулирование URI.Поправьте меня, если я ошибаюсь, но похоже, что вы пытаетесь выполнить URL с первым разделом, представляющим имя метода, и вообще не указывать имя контроллера.
Если это так, вы быПолучите более чистое решение, получив креативность ваших маршрутов .
В качестве простого примера, скажем, у вас есть два контроллера, controller1
и controller2
.Controller1
имеет метод method_1
- и controller2
имеет метод method_2
.
Вы можете настроить маршруты следующим образом:
$route['method_1'] = "controller1/method_1";
$route['method_2'] = "controller2/method_2";
Затем вы можете вызвать метод1 с URL-адресом, таким как http://example.com/method_1
, и метод 2 с http://example.com/method_2
.
. Хотя это жестко, очень простой пример, но он может привести вас туда, где вам нужно, если все вынужно сделать это удалить контроллер из URL.
Вы также можете пойти с переназначить ваши контроллеры .
Из документов: «Если ваш контроллер содержитфункция с именем _remap () всегда будет вызываться независимо от того, что содержит ваш URI. ":
public function _remap($method)
{
if ($method == 'some_method')
{
$this->$method();
}
else
{
$this->default_method();
}
}