簡體   English   中英

如何在kohana3.2中查詢和顯示數據庫中的數據

[英]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

  1. 約翰xxxxxx john@gmail.com 1

  2. 喬治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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM