簡體   English   中英

如何在 codeigniter v4 的子目錄中創建 controller?

[英]How to create a controller in a sub-directory in codeigniter v4?

在 controller 中的 codeigniter v3 子目錄中工作正常。 但在 codeigniter v4 中,這不起作用。

文件夾結構: Controllers/[子目錄名]/Controller_name.php

需要這個 Url: htp://domain.com/[子目錄名]/controller_name/

如何在 Codeigniter v4 中解決這個問題?

如果您想使用 BaseController,您必須指定“哪個”,使用 USE 或者您可以在每次使用 object 時明確指定它。

所以你可以(正如 deste 回答的那樣)但使用 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 用戶指南,並多多研究以了解它是如何工作的。 您可能還想閱讀Lonnie Ezell (CodeIgniter 的開發人員之一)的Primer: Namespaces & CodeIgniter 4

使用“命名空間”和“使用”,您可以創建 HMVC 結構或任何您喜歡的東西。 它們功能強大,一旦您掌握了基礎知識,就非常簡單。

我對 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頁面工作正常。 我希望這可以在某種程度上幫助你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM