मुझे कोडइग्निटर 4 में उप निर्देशिका नियंत्रकों का उपयोग करने में सहायता चाहिए।

मैं इसे किसी कारण से काम नहीं कर सकता।

उदाहरण के लिए यह यूआरएल है: www.example.com/admin/dashboard

नियंत्रक फ़ोल्डर में, मैंने Admin नाम का एक फ़ोल्डर और Dashboard.php नाम की एक फ़ाइल बनाई।

मैंने इस कोड का उपयोग Dashboard.php में किया है:

namespace App\Controllers;

class Dashboard extends BaseController
{
    public function index()
    {

    }
}

मैंने कक्षा के नाम को AdminDashboard, Admin_Dashboard में बदलने की कोशिश की, लगभग हर तार्किक नाम लेकिन हर बार मुझे 404 त्रुटि मिलती है, यह कहते हुए:

नियंत्रक या इसकी विधि नहीं मिली: App\Controllers\Admin\Dashboard::index

मुझे पता है कि फ़ाइल स्वयं सफलतापूर्वक लोड हो जाती है, लेकिन मुझे लगता है कि मैं क्लासनाम को सही ढंग से घोषित नहीं करता और यह मुझे उन 404 त्रुटियों को फेंकता रहता है।

सीआई 4 का दस्तावेज दुर्भाग्य से क्लासनाम को क्या कहा जाना चाहिए, इस बारे में कोई जानकारी नहीं दे रहा है ...


अद्यतन #1

मैं कुछ चीजों को बदलकर इसे काम करने में कामयाब रहा:

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

class Dashboard extends Controller
{
    public function index()
    {

    }
}

लेकिन अब यह BaseController का विस्तार नहीं करेगा जिसमें कुछ मुख्य कार्य हैं जो मैंने अपने ऐप के लिए बनाए हैं।

इसे BaseController बढ़ाने का कोई उपाय बताएं?

मुझे यह स्वीकार करना होगा कि मुझे अभी तक नेमस्पेसिंग के बारे में अधिक जानकारी नहीं है, इसलिए यह मेरी गलतियों का कारण हो सकता है।

6
Alon Pini 10 अप्रैल 2020, 05:43

2 जवाब

सबसे बढ़िया उत्तर

जैसा कि मैंने कल्पना की थी, समस्या यह थी कि मैंने नेमस्पेसिंग के बारे में नहीं सीखा। मुझे बेसकंट्रोलर स्थान पर use लाइन को इंगित करने की आवश्यकता थी।

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

class Dashboard extends BaseController
{
    public function index()
    {

    }
}

अब www.example.com/admin/dashboard/ सीधे उस इंडेक्स फ़ंक्शन पर जाता है, जैसा कि इरादा है।

10
Alon Pini 10 अप्रैल 2020, 06:48
1
और उस ज्ञान के साथ आप एचएमवीसी जैसे संरचनाओं और अपनी पसंद की किसी भी चीज़ को लागू कर सकते हैं।
 – 
TimBrownlaw
10 अप्रैल 2020, 13:10
आपने मार्गों का नक्शा कैसे बनाया?
 – 
bob269
13 जून 2020, 13:39
एक और बात यह है कि आपके पास नियंत्रक फ़ोल्डर में व्यवस्थापक नाम का नियंत्रक नहीं होना चाहिए, अन्यथा यह काम नहीं करेगा, या आप मार्गों का उपयोग करके इस समस्या को ठीक कर सकते हैं
 – 
rufaidulk
15 नवम्बर 2020, 07:46
php spark make:controller /Subfolder/ControllerName
0
Suraj Rao 3 सितंबर 2021, 14:47
स्टैक ओवरफ़्लो में आपका स्वागत है! स्टैक ओवरफ्लो में आपका स्वागत है। हालांकि यह कोड प्रश्न का उत्तर दे सकता है, लेकिन कैसे और/या क्यों के बारे में अतिरिक्त संदर्भ प्रदान करने से यह समस्या का समाधान करता है, उत्तर के दीर्घकालिक मूल्य में सुधार होगा।
 – 
Sven Eberth
5 सितंबर 2021, 02:35