[英]How to query and display data from database in kohana3.2
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
約翰xxxxxx john@gmail.com 1
喬治xxxxxx george@aol.com 1
我想從表中顯示用戶名和emailid。我新學習php和kohana,我知道如何插入,編輯和刪除kohana教程現在我試圖顯示數據庫中的數據。我不知道如何做。
您確定,這是您想要使用的結構嗎? 通常在使用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的對象只保留一個用戶)。
您不需要任何其他方法,尤其是不使用DB。 由於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;
我希望這至少可以讓你對Kohana的ORM和觀點有所了解。 如果您還有其他問題,請嘗試Kohana用戶指南 ,它通常提供很好的示例,例如ORM和視圖 。
Kohana非常靈活,因此您可以輕松更改系統,例如為您的模型設置非標准表名稱。 然而,這些約定通常非常復雜,特別是當你開始學習PHP和Kohana的使用時,我寧願建議與它們並行 - 即使需要額外的一兩個小時來弄清楚如何去做 - 而是做自己的事。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.