2013-10-31 15 views
0

models.php查询和显示从数据库中的数据如何kohana3.2

<?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. 约翰XXXXXX [email protected] 1

  2. 乔治XXXXXX [email protected] 1

我想要显示从table.I用户名& EMAILID正在重新学习PHP和Kohana的,我知道如何插入,编辑&从kohana教程现在删除我试图显示数据库中的数据。我不知道该怎么做。

+0

你有'Model_User'吗? – kero

+0

@kingkero是Model_User我正在粘贴模型文件。 – user2942100

回答

2

你确定这是你想要使用的结构吗?通常在使用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,它通常会提供很好的例子,例如为ORMviews

Kohana非常灵活,所以您可以轻松地更改系统,例如为模型设置非标准表名称,就像您一样。然而,这些约定通常都非常复杂,尤其是当你开始学习PHP和使用Kohana时,我宁愿建议与他们并肩作战 - 即使需要一两个小时才能弄清楚如何去做 - 反而做你自己的事情。

+0

好答案..... – user2942100