我正在学习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。当我运行代码时,它表示变量用户未定义。如何正确显示结果?感谢。
答案 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提供了许多优势,例如relationships,validation和filters。无需编写复杂的附加代码(例如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;
?>