Есть ли существенная разница между codeigniter 1.7 и последней версией? - PullRequest
1 голос
/ 05 марта 2012

По сути, я начал изучать codeigniter сегодня и купил книгу на эту тему.Книга ссылается на версию 1.7 и версию, с которой я работаю, это 2.1.

В книге приведен пример контроллера, который выглядит следующим образом:

<?php
class Start extends CI_Controller {

var    $base;
var    $css;


    function Start(){ 

        parent::CI_Controller();

        $this->base = $this->config->item('base_url');
    $this->css = $this->config->item('css');      

        }            

function hello($name)

{

$data['css'] = $this->css;

$data['base'] = $this->base;

$data['mytitle'] = 'Welcome to this site';

$data['mytext'] = "Hello, $name, now we're getting dynamic!";
    $this->load->view('testview', $data);

   }  
}

Однако он будет работать только тогда, когда яудалите следующую функцию:

function Start(){ 

        parent::CI_Controller();

        $this->base = $this->config->item('base_url');
    $this->css = $this->config->item('css');      

        }

Кто-нибудь знает почему?Если так, то как мне вызвать мой файл CSS из конфигурации.

РЕДАКТИРОВАТЬ: Представление:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Web Test Site</title>
<link rel="stylesheet" type="text/css" href="<?php echo $base . "/" . $css; ?>">
</head>
<body>

<h1><?php echo $mytitle; ?></h1>
<p class='test'> <?php echo $mytext; ?> </p>
</body>
</html>

Любая помощь будет высоко ценится.Спасибо!

1 Ответ

2 голосов
/ 05 марта 2012

Произошло много изменений - вы должны увидеть список изменений , если не хотите точно знать, что именно.

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

Во-первых, когда создает контроллер в CI 2.1, вы должны написать его в стиле PHP5 OOP, а не в стиле PHP4 OOP, как вы делаете в своем примере.

Простой пример:

<?php
class Start extends CI_Controller {

    public function index()
    {
        echo 'Hello World!';
    }
}
?>

Теперь это ваш основной контроллер, который просто повторяет «Hello World!» при доступе к index.php/start.
Если вам нужно что-то сделать, получить переменные конфигурации или загрузить некоторые модели / библиотеки перед переходом к методу index (), вам следует создать метод __ construct () , который вызывается при создании экземпляра контроллера Start , Этот метод __construct() должен вызывать конструкцию из CI_Controller (родитель, с которого вы расширяете). И вы делаете это, набирая parent::__construct(); в своем собственном методе построения:

<?php
class Start extends CI_Controller {

    public function __construct()
    {
      parent::__construct();
      //call models, variables, whatever here
    }

    public function index()
    {
        echo 'Hello World!';
    }
}
?>

И это в основном то, что вам нужно знать о том, как заставить работать ваш контроллер.

Я не знаю, что означает «вызвать ваш файл CSS из конфига» - я не знаю, что содержит элемент конфигурации CSS или что книга хочет, чтобы вы сделали с ним.

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