2016-08-03 7 views
0

Ich habe diesen Controller bekomme genannt SeiteCodeIgniter säumige Ansichten

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Page extends CI_Controller { 

    /** 
    * Index Page for this controller. 
    * 
    * Maps to the following URL 
    *  http://example.com/index.php/welcome 
    * - or - 
    *  http://example.com/index.php/welcome/index 
    * - or - 
    * Since this controller is set as the default controller in 
    * config/routes.php, it's displayed at http://example.com/ 
    * 
    * So any other public methods not prefixed with an underscore will 
    * map to /index.php/welcome/<method_name> 
    * @see https://codeigniter.com/user_guide/general/urls.html 
    */ 
    public function index($page = 'home') 
    { 
     if (! file_exists(APPPATH.'views/'.$page.'.php')) 
     { 
       // Whoops, we don't have a page for that! 
       show_404(); 
     } 

     $data['title'] = ucfirst($page); // Capitalize the first letter 

     $this->load->view('templates/header', $data); 
     $this->load->view($page, $data); 
     $this->load->view('templates/footer', $data); 
    } 
} 

aber zur Zeit lädt es nur die home.php Seite von zu http://www.example.com/

werde ich versuche, es so zu machen, wenn ich gehe example.com/test es meine Routen Hier laden würde test.php

sind

$route['default_controller'] = 'page'; 
$route['(:any)'] = 'page/$1'; 

Ich bin neu in PHP-Frameworks, und ich bin nicht sicher, wie dies zu erreichen ist. Jede Hilfe würde sehr geschätzt werden.

Antwort

0

Das Codeigniter-Routing funktioniert so, dass es auf die Indexfunktion eines Controllers namens Test.php in Ihrem Controller-Ordner zeigt: example.com/test.

Hier finden Sie die Konventionen für codeigniter url-Routing:

http://www.example.com/controller/function_in_that_controller/parameters/in/that/function 

Bei http://www.example.com/controller/, die Index-Funktion standardmäßig aufgerufen wird; da in der URL nach dem Controller keine Funktion definiert ist.

+0

Okay, so wie mache ich die Testseite Belastung durch die Indexfunktion meiner Seite Controller? Ich habe 'example.com/page/index/test' und' example.com/index/test' und 'example.com/page/test' ausprobiert und nichts scheint zu funktionieren. –

+0

probiere example.com/index.php/test Wenn das funktioniert, schauen Sie in die .htaccess Datei aus der Codeigniter Dokumentation, um auf die Seite http://www.example.com/test zugreifen zu können. – coderodour

+0

Das hat funktioniert. Ich werde es mir anschauen, danke. –

3

ändern

$route['(:any)'] = 'page/$1'; 

Um

$route['(:any)'] = 'page/index/$1'; 
+0

Ich habe das getan, wie kann ich nun auf die Seite zugreifen? Ich habe 'http: // www.example.com/test' ohne Würfel versucht. –

+0

Hoffentlich haben Sie 'test.php' Datei im Views-Verzeichnis. Testen Sie es zuerst über "http: // www.example.com/index.php/test". Wenn das funktioniert, dann überprüfen Sie '.htaccess' Dateieinstellung und' config.php' Dateieinstellung. – Tpojka

Verwandte Themen