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
John xxxxxx john@gmail.com 1
George xxxxxx george@aol.com 1
我想显示用户名&amp;来自桌子的emailid。我新学习php和kohana,我知道如何插入,编辑和放大现在从kohana教程删除我试图显示数据库中的数据。我不知道该怎么做。
答案 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,它通常会提供很好的示例,例如适用于ORM和views。
Kohana非常灵活,因此您可以轻松更改系统,例如为您的模型设置非标准表名称。然而,这些约定通常非常复杂,特别是当你开始学习PHP和Kohana的使用时,我宁愿建议与它们并行 - 即使需要额外的一两个小时来弄清楚如何去做 - 而是做自己的事。