2013-12-03 4 views
0

Я изучаю kohana 3.3. Я работаю над модельной частью. Основной запрос. Но я не знаю, как отображать результаты, полученные из запроса.Результаты поиска по запросу

Вот модель.

AppPath/классы/модель/people.php

class Model_People extends Model 
    { 

    public function show_data() 
    { 
     $query = DB::query(Database::SELECT, 'SELECT * FROM people'); 
     return $query; 
    } 

    } 

AppPath/классы/контроллер/people.php

class Controller_People extends Controller 
{ 

    public function action_index() 
    { 
     $model = Model::factory('people'); 

     $view = View::factory('base_template'); 

     $model->user = $model->show_data(); 

      $this->response->body($view); 
     } 
} 

AppPath/просмотров/base_template.php

<?php foreach($user as $row) { ?> 
<?php echo "<h2>".$row['Name']."</h2>"; ?> 
<?php } ?> 

Я не хочу использовать ORM Я использую QUERY BUILDER. Когда я запускаю код, он говорит, что переменная пользователя не определена. Как правильно отображать результаты? Благодарю.

ответ

1

попробовать этот

class Controller_People extends Controller 
{ 

    public function action_index() 
    { 
     $model = Model::factory('people'); 

     $view = View::factory('base_template'); 
     $view->user = $model->show_data(); 

     $this->response->body($view); 
    } 
} 

затем петлю зрения

<?php foreach($user as $row) : ?> 
    <?php echo "<h2>".$row['Name']."</h2>"; ?> 
<?php endforeach; ?> 
+0

Нет больше ошибок, но ничего не отображается ?. Мне все еще нужен execute()? – Defyleiti

+1

да просто добавьте '' -> execute() '' в конец вашего запроса '' DB :: query (Database :: SELECT, 'SELECT * FROM people') -> execute(); '' – ins0

+0

Большое спасибо теперь работает. Я очень ценю помощь ур. – Defyleiti

2

Поскольку вы учитесь Кохана, я предложил бы использовать ORM, Kohana предлагает довольно мощный модуль для этого.

После включения модуля вы можете использовать его как этот

Model_People

class Model_People extends ORM { 

} 

Controller_People

public function action_index() { 
    $people = ORM::factory('People')->find_all(); 
    $view = View::factory('base_template'); 
    $view->people = $people; 

    $this->response->body($view); 
} 

base_template

<?php foreach ($people as $person) : ?> 
    <h2><?php echo $person->Name; ?></h2> 
<?php endforeach; ?> 

ORM предлагает множество преимуществ, таких как relationships, validation и filters. Без необходимости писать сложный дополнительный код (например, выражения DB).


Кроме того при работе с представлениями, вы можете использовать контроллер, который расширяет Controller_Template вместо Controller

+0

Хорошо, спасибо большое. Я попробую. – Defyleiti

+2

Добро пожаловать. У Kohana есть мощные классы - чем раньше вы узнаете, как их использовать, тем больше вы получаете прибыль и можете сосредоточиться на части вашего кода, которые действительно имеют значение;) – kero

+0

Спасибо за совет :) – Defyleiti

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