Как создать контроллер в подкаталоге в codeigniter v4? - PullRequest
0 голосов
/ 18 апреля 2020

В подкаталоге codeigniter v3 в контроллере работает нормально. Но в codeigniter v4 это не работает.

Структура папки: Контроллеры / [имя подкаталога] /Controller_name.php

Нужен этот URL: htp: // domain .com / [имя подкаталога] / имя_контроллера /

Как я могу решить эту проблему в Codeigniter v4?

Ответы [ 2 ]

1 голос
/ 19 апреля 2020

Если вы хотите использовать BaseController, вы должны указать «какой», используя USE, или вы можете явно указать его каждый раз, когда используете объект.

Так что вы можете иметь ( как ответил ), но с использованием BaseController

<?php namespace App\Controllers\Ajax;

    class Test extends \App\Controller\BaseController // Which BaseController
    {
        public function index()
        {
            return 'controller works!';
        }
    }

ИЛИ лучший способ использования «использования» - указать, какой именно BaseController вы хотите использовать один раз.

<?php namespace App\Controllers\Ajax;

use App\Controllers\BaseController; // Which BaseController are you referring to.

class Test extends BaseController
{
    public function index()
    {
        return 'controller works!';
    }
}

Это вопрос PHP Где ваши файлы.

Не самые ясные объяснения, но думайте об этом, как вы должны сказать "где-то что-то".

Я настоятельно рекомендую прочесть Codeigniter User Guide еще несколько раз и еще больше возиться с ним, чтобы понять, как все это работает. Вы также можете прочитать Учебник для начинающих: Пространства имен и CodeIgniter 4 от Lonn ie Ezell (один из разработчиков CodeIgniter).

Использование «Пространства имен» и «использовать» вы можете создавать структуры H MVC или все что угодно. Они мощные, и как только вы получите основы, очень просто.

0 голосов
/ 18 апреля 2020

Я еще не очень знаком с CodeIgniter 4 и пространствами имен ... Но я полагаю, что это проблема с пространством имен.

Я пытался повторить ваш случай. Я создал каталог ./App/Controllers/ajax и внутри этого файла Test. php:

<?php namespace App\Controllers\Ajax;

class Test extends \CodeIgniter\Controller
{
    public function index()
    {
        return 'controller works!';
    }
}

https://myserver/ajax/test страница работает нормально. Надеюсь, это поможет вам.

...