显示查询结果

时间:2013-12-03 12:43:16

标签: php kohana

我正在学习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) {
        echo "<h2>".$row['Name']."</h2>";
    } 
?>

我不想使用ORM我使用QUERY BUILDER。当我运行代码时,它表示变量用户未定义。如何正确显示结果?感谢。

2 个答案:

答案 0 :(得分:2)

由于你正在学习Kohana,我建议使用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提供了许多优势,例如relationshipsvalidationfilters。无需编写复杂的附加代码(例如DB表达式)。


此外,在处理视图时,您可能希望使用扩展Controller_Template而不是Controller的控制器

答案 1 :(得分: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) :
        echo "<h2>".$row['Name']."</h2>";
    endforeach; 
?>