如何在kohana3.2中查询和显示数据库中的数据

时间:2013-10-31 15:54:06

标签: php kohana kohana-3

models.php

<?php defined('SYSPATH') or die('No direct script access.');

class Model_manage_feeds extends ORM  {
    protected $_table_name = 'User';
     public function manage_user(){

     $query = DB::select()->from('User');
     return $query;
     }
}

控制器/ user_details.php

public function action_manage_user() {
    $this->template->title = "Manage User";
    this->template->content = View::factory('manage_user');
}    

查看我的数据库结构

ID用户名密码电子邮件is_active

  1. John xxxxxx john@gmail.com 1

  2. George xxxxxx george@aol.com 1

  3. 我想显示用户名&amp;来自桌子的emailid。我新学习php和kohana,我知道如何插入,编辑和放大现在从kohana教程删除我试图显示数据库中的数据。我不知道该怎么做。

1 个答案:

答案 0 :(得分:2)

您确定,这是您想要使用的结构吗?通常在使用ORM时,您希望一个类代表特定的一方 - 在这种情况下,它将是用户。像“manage”这样的词不属于模型的标题,因为它应该是通用的。

由于您的用户此时不需要任何验证/特定方法,因此您的类可能如下所示(/models/User.php):

<?php defined('SYSPATH') or die('No direct access allowed.');

class Model_User extends ORM {
    protected $_table_name = 'User';
}

使用Kohana的约定可能是更好的做法,数据库中的表名将是users(因为该表包含多个用户,但Model_User类的对象只包含一个用户)。

您不需要任何其他方法,尤其是不使用数据库的方法。由于extends ORM,PHP知道如何处理此对象以及在等等时运行的数据库查询。

现在在您的控制器中,您可以使用Kohana通过ORM提供的方法,并执行以下操作:

$users = ORM::factory('User')->find_all();
foreach ($users as $user) {
    // access one user's data via $user->id, $user->username, etc.
}

那么,如何在Views中使用它?你基本上需要两个模板,一个持有外部结构(你的表,所有超出的)和一个内部(表的一行),这可以像下面这样做:

/views/main.php

<h1><?php echo $title; ?></h1>
<table>
<?php echo $rows; ?>
</table>

/views/userdetail.php

<tr>
  <td><?php echo $user->username; ?></td>
  <td><?php echo $user->email; ?></td>
</tr>

管理此控制器的部分可以像这样完成

$view = View::factory('main');
$view->title = "Hello, this is the list of users";

$userlist = "";
$users = ORM::factory('User')->find_all();
foreach ($users as $user) {
    $detail_view = View::factory('userdetail');
    $detail_view->user = $user;
    $userlist .= $detail_view; // .= appends $detail_view to $userlist
}

$view->rows = $userlist;

我希望这至少可以为您提供有关ORM和Kohana视图的概述。如果您还有其他问题,请尝试Kohana userguide,它通常会提供很好的示例,例如适用于ORMviews

Kohana非常灵活,因此您可以轻松更改系统,例如为您的模型设置非标准表名称。然而,这些约定通常非常复杂,特别是当你开始学习PHP和Kohana的使用时,我宁愿建议与它们并行 - 即使需要额外的一两个小时来弄清楚如何去做 - 而是做自己的事。