2015-10-24 5 views
1

У меня есть этот простой PHP-код, в котором я создал новую модель с именем знаменитостей, контроллером, который обращается к имени знаменитости из модели и представлению для отображения имени. По какой-то причине, используя следующий путь, я не могу отобразить имя, доступ к контроллеру. Я не могу понять, чего я не вижу или что делаю неправильно. Спасибо за помощь!PHP MVC не может получить доступ к контроллеру

http://localhost/ci/Starcontroller/guess

эксплуатации контроллеров>

<?php 
class Starcontroller extends CI_Controller{ 
    function __construct() {parent::__construct();} 
    function guess() 
    { 
     $this->load->model('starmodel'); 
     $newstarr = $this->starmodel->lookup(); 
     $this->load->view('starview',$newstarr); 
    } 
} 
?> 

Модель->

<?php 
class starmodel extends CI_Model{ 
    function __construct() 
    { 
     parent::__construct(); 
    } 
    public function lookup(){ 

    $celebrity = "Anna"; 
    return $celebrity; 
    } 
} 
?> 

View ->

<html> 
<head></head> 
<body> 

    <?php 
     echo $newstarr; 
    ?> 
</body> 
</html> 
+0

имя intial класса в capial как 'class Hero {}' и имя файла также – Linus

+0

@ AnmolRaghuvanshiVersion1.0 Мне это известно, и имена классов начинаются с прописной буквы, такой же, как имя имени файла. Изменено имя класса для контроллера по-прежнему никаких результатов. Ошибка: ** Запрошенный URL/ci/Starcontroller не найден на этом сервере ** Это работает: ** http: // localhost/ci/** – Otonel

+0

см. Ваш модельный класс starmodel small s – Linus

ответ

2

Первый начальный алфавит имя класса и имя файла O е контроллер и модель в заглавной букве Проверят ваше имя модели класса

Затем в изменении контроллера к этому

<?php 

class Starcontroller extends CI_Controller { 

    function __construct() { 
     parent::__construct(); 
     // Would load model in here and other helpers and libraries. 
     // So can access through all functions on controller. 
     // $this->load->model('starmodel'); 
    } 

    function guess() { 
     $this->load->model('starmodel'); 
     $newstarr['data'] = $this->starmodel->lookup(); 
     $this->load->view('starview',$newstarr); 
    } 

} 

Ввиду

<?php echo $data ?> 
0

От контроллера, вы хотели бы передать ассоциативный массив данных для представления. Так изменить эту часть:

$newstarr = $this->starmodel->lookup(); 
$this->load->view('starview',$newstarr); 

Для этого:

$data['newstarr'] = $this->starmodel->lookup(); 
$this->load->view('starview',$data); 

Остальной код может остаться тем же самым.

Смежные вопросы