Как работать с контроллерами подкаталогов в CodeIgniter 4? - PullRequest
1 голос
/ 10 апреля 2020

Мне нужна помощь с использованием контроллеров подкаталогов в CodeIgniter 4.

Я просто не могу заставить его работать по какой-то причине.

Это URL-адрес, например: www.example.com/admin/dashboard

В папке контроллеров я создал папку с именем Admin и файл с именем Dashboard.php.

Я использовал этот код в Dashboard.php:

namespace App\Controllers;

class Dashboard extends BaseController
{
    public function index()
    {

    }
}

Я попытался изменить имя класса на AdminDashboard, Admin_Dashboard, почти каждое логическое имя, но каждый раз, когда я получаю ошибку 404, говоря:

Контроллер или его метод не найден: приложение \ Controllers \ Admin \ Dashboard :: index

Я знаю, что сам файл загружается успешно, но я думаю, что неправильно объявляю имя класса, и он продолжает выдавать мне эти 404 ошибки.

Документация CI4 не предоставляет никакой информации о том, как следует называть имя класса, к сожалению ...


ОБНОВЛЕНИЕ # 1

Мне удалось заставить его работать, изменив Несколько вещей:

namespace App\Controllers\Admin;
use CodeIgniter\Controller;

class Dashboard extends Controller
{
    public function index()
    {

    }
}

Но теперь он не будет расширять BaseController, который имеет Основные функции, которые я создал для своего приложения.

Любые идеи о том, как заставить его расширяться BaseController?

Я должен признать, что у меня пока нет особых знаний о пространстве имен, поэтому это может быть причиной моих ошибок.

1 Ответ

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

Как я себе представлял, проблема была в том, что я не узнал о пространстве имен. Мне нужно было указать линию use в расположении BaseController.

namespace App\Controllers\Admin;
use App\Controllers\BaseController;

class Dashboard extends BaseController
{
    public function index()
    {

    }
}

Теперь www.example.com/admin/dashboard/ переходит непосредственно к этой индексной функции, как и предполагалось.

...