你确定这是你想要使用的结构吗?通常在使用ORM时,你希望一个类代表一个特定的方 - 在这种情况下,它将是用户。像“管理”这样的词不属于模型的标题,因为它应该是通用的。
由于用户不需要在这个时候任何的验证/具体方法,你的类可以是这样的(/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;
完成10
我希望这至少能够让你至少了解一下Kohana中的ORM和视图。如果您还有其他问题,请尝试Kohana userguide,它通常会提供很好的例子,例如为ORM和views。
Kohana非常灵活,所以您可以轻松地更改系统,例如为模型设置非标准表名称,就像您一样。然而,这些约定通常都非常复杂,尤其是当你开始学习PHP和使用Kohana时,我宁愿建议与他们并肩作战 - 即使需要一两个小时才能弄清楚如何去做 - 反而做你自己的事情。
你有'Model_User'吗? – kero
@kingkero是Model_User我正在粘贴模型文件。 – user2942100