मुझे कोडइग्निटर 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
बढ़ाने का कोई उपाय बताएं?
मुझे यह स्वीकार करना होगा कि मुझे अभी तक नेमस्पेसिंग के बारे में अधिक जानकारी नहीं है, इसलिए यह मेरी गलतियों का कारण हो सकता है।
2 जवाब
जैसा कि मैंने कल्पना की थी, समस्या यह थी कि मैंने नेमस्पेसिंग के बारे में नहीं सीखा। मुझे बेसकंट्रोलर स्थान पर use
लाइन को इंगित करने की आवश्यकता थी।
namespace App\Controllers\Admin;
use App\Controllers\BaseController;
class Dashboard extends BaseController
{
public function index()
{
}
}
अब www.example.com/admin/dashboard/
सीधे उस इंडेक्स फ़ंक्शन पर जाता है, जैसा कि इरादा है।
php spark make:controller /Subfolder/ControllerName