Является ли этот код Codeigniter правильным? - PullRequest
0 голосов
/ 03 июня 2011

Я только начал смотреть на PHP Frameworks после того, как потратил кучу потерянного времени, делая все с нуля. Я думал, что попробую Codeigniter после того, как его мне порекомендует друг.

Я прошел первый урок, проблем не было, но я застрял со вторым.

Сначала мой код был идентичен учебнику:

<?php


class Blog extends CI_Controller{


    function Blog()
    {

        parent::CI_Controller();

        $this->load->scaffolding('entries');
    }


    public function index(){

        $data['title'] = "My Blog Title";
        $data['heading'] = "An intresting title";


        $data['todo'] = array('create media player','design site','finish project');

        $this->load->view('blog_view',$data);
    }
}

?>

Но я получил внутреннюю ошибку сервера. Посмотрев руководство пользователя, вы увидите другой способ использования конструктора.

Я изменил код на спецификацию документа.

<?php


class Blog extends CI_Controller{


    public function __construct() {

        parent::__construct();

        $this->load->scaffolding('entries');
    }




    public function index(){

        $data['title'] = "My Blog Title";
        $data['heading'] = "An intresting title";


        $data['todo'] = array('create media player','design site','finish project');

        $this->load->view('blog_view',$data);
    }
}

?>

Но я все еще получаю внутреннюю ошибку. Я не знаю, неверен ли мой код или я что-то неправильно настроил. Несколько советов было бы хорошо, спасибо.

Edit: Чтобы уточнить - я получаю внутреннюю ошибку, только когда я добавляю конструктор в класс.

Ответы [ 2 ]

5 голосов
/ 03 июня 2011

Это, скорее всего, потому что вы пытаетесь загрузить scaffolding в последней версии CodeIgniter.

Строительные леса устарели с версии 1.6. Он был удален в 2.0, и последняя версия теперь 2.0.2

С точки зрения того, какие из предоставленных вами фрагментов использовать, последняя форма объявления конструктора (__construct) предпочтительнее, чем использование имени класса (Blog). Этот метод также совместим с базовыми классами CodeIgniter начиная с версии 2.0.

Кроме того, я понятия не имею, почему CodeIgniter включает такие устаревшие образцы в свои учебные пособия. EllisLab, похоже, недавно потеряли общий интерес к проекту CI, и это позор: (

0 голосов
/ 03 июня 2011

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

Обычно .htaccess файл или настройки apache.Попробуйте это:

  1. Включить модуль перезаписи в apache.
  2. Убедитесь, что файл .htaccess настроен правильно.Это должно выглядеть так: https://gist.github.com/ce2914e79193896590bc

Это также удаляет index.php, который вы должны посмотреть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...