php - Codeigniter सेटिंग होमपेज(डिफ़ॉल्ट नियंत्रक)




codeigniter-2 codeigniter-routing (2)

समस्या यह है कि जब आप www.mywebsite.com जाएं www.mywebsite.com कोई यूआरआई खंड नहीं है। आप डिफ़ॉल्ट मान को सेट करने का प्रयास कर सकते हैं:

$this->uri->segment(1 , 'blog')

मैं अपने codeigniter अनुप्रयोग में पृष्ठ टेम्पलेटिंग को लागू करने की कोशिश कर रहा हूं, उदाहरण के लिए टेम्पलेटिंग ठीक काम कर रहा है, मेरे पास एक ब्लॉग पेज है, जो मैं अपने मुखपृष्ठ के रूप में असाइन करने का प्रयास कर रहा हूं, अलग-अलग दृश्य और पेजिंग के साथ। जब मैं www.mywebsite.com/blog लिखता हूं, तो यह होमपेज टेम्पलेट में खोला जाता है, या मानता है कि मेरे पास www.mywebsite.com/about पृष्ठ है, यह पेज टेम्पलेट में भी खोला जाता है। लेकिन जब मैं www.mywebsite.com के माध्यम से अपनी वेबसाइट का उपयोग करने की कोशिश करता हूं, मेरे पास 404 त्रुटि पृष्ठ है। मैं अपने ब्लॉग पेज को होमपेज के रूप में कैसे निर्दिष्ट कर सकता हूं?

पृष्ठ नियंत्रक:

class Page extends Frontend_Controller {

public function __construct(){
    parent::__construct();
    $this->load->model('page_m');
}

public function index() {

// Fetch the page template
$this->data['page'] = $this->page_m->get_by(array('slug' => (string) $this->uri->segment(1)), TRUE);
count($this->data['page']) || show_404(current_url());

add_meta_title($this->data['page']->title);
add_meta_keyword($this->data['page']->keywords);
add_meta_description($this->data['page']->description);

// Fetch the page data
$method = '_' . $this->data['page']->template;
if (method_exists($this, $method)) {
        $this->$method();
}
else {
log_message('error', 'Could not load template ' . $method .' in file ' . __FILE__ . ' at line ' . __LINE__);
}

// Load the view
$this->data['subview'] = $this->data['page']->template;
$this->load->view('_main_layout', $this->data);
}

private function _page(){ // methods }
private function _homepage(){ // methods }
}

मेरे रूट्स में, मैंने अपना डिफॉल्ट नियंत्रक पेज नियंत्रक को सेट किया है

$route['default_controller'] = "page";

तुम्हारा कोड

// Fetch the page template
$this->data['page'] = $this->page_m->get_by(array('slug' => (string) $this->uri->segment(1)), TRUE);
count($this->data['page']) || show_404(current_url());

यूरी खंड कोड

$this->uri->segment(1)

पहले यूआरएल सेगमेंट देख रहा है, जब आप www.yousite.come / blog की तरह अपनी साइट को ब्राउज़ करते हैं तो यह काम करेगा, लेकिन जब आप www.yoursite.com करते हैं तो पहला यूरी सेगमेंट गायब है, इसलिए यह गलत लौटाएगा, इसलिए मैं 404 पृष्ठ दिखाऊंगा।

समाधान: आप फ़ंक्शन की तरह दूसरे पैरामीटर को जोड़ सकते हैं

$this->uri->segment(1,'blog');

अब अगर पहले यूआरएल सेगमेंट याद नहीं है तो यह गलत नहीं लौटाएगा, यह डिफ़ॉल्ट विले 'ब्लॉग'

इसके बारे में अधिक जानकारी के लिए आप कोडिंगर दस्तावेज देख सकते हैं