2015-08-15 4 views
0

Я следую этому базовому tutorial на Codeigniter об обслуживании статических страниц. Я последовал за все шаги, и я на это:Codeigniter view vs index

class Pages extends CI_Controller { 

    public function view($page = 'home') 
    { 
     if (! file_exists(APPPATH.'/views/pages/'.$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('pages/'.$page, $data); 
     $this->load->view('templates/footer', $data); 
    } 
} 

Я скопировать и вставить его, чтобы увидеть вид, который я сделал, но это дает мне 404 Page Not Found. Я посмотрел на другие учебники, и они, похоже, используют функцию индекса, а не функцию представления.

Например, я изменил выше к следующему, просто переименованы view в index:

class Pages extends CI_Controller { 

    public function index($page = 'home') 
    { 
     if (!file_exists(APPPATH.'/views/pages/'.$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('pages/'.$page, $data); 
     $this->load->view('templates/footer', $data); 
    } 
} 

теперь работает должным образом. Почему код учебника работает неправильно?

+0

Вы установили: $ route ['default_controller'] = 'pages/view' ;? – sinisake

+0

Нет. Как это влияет на это? –

+0

вы можете изучить по маршрутизации с http://www.codeigniter.com/user_guide/general/routing.html –

ответ

2

Вы должны установить маршрут, чтобы фреймворк мог выбрать способ вызова объекта, который вы определяете как контроллер. Вот как работает структура.

Индекс - это маршрут по умолчанию, поэтому его не нужно определять. Но все остальное.

+0

Где это ??????? –

+1

@RobertRocha найти route.php в вашем каталоге приложений/config. Там уже приветствуется маршрут, поэтому вы должны узнать, как его использовать. Если не проверить руководство. – NemanjaSRB