0

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

テーブルからユーザー名とメールIDを表示したい.私は新しくphpとkohanaを学んでいます.kohanaチュートリアルから挿入、編集、削除する方法を知っています.今、データベースからデータを表示しようとしています.方法がわかりません.行う。

4

1 に答える 1

2

本当に、これはあなたが使用したい構造ですか? 通常、ORM を使用する場合、1 つのクラスで特定のパーティ (この場合はユーザー) を表す必要があります。「管理」などの言葉は、普遍的なものであるため、モデルのタイトルには含まれません。

現時点では、ユーザーは検証や特定のメソッドを必要としないため、クラスは次のようになります (/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 のオブジェクトは 1 人のユーザーしか保持しないため)。

これ以上のメソッドは必要ありません。特に、DB を操作するメソッドは必要ありません。のおかげでextends ORM、PHP はこのオブジェクトの処理方法や、どのデータベース クエリをいつ実行するかなどを認識しています。

これで、コントローラーで、ORM を介して提供される Kohana のメソッドを使用して、次のようなことを行うことができます。

$users = ORM::factory('User')->find_all();
foreach ($users as $user) {
    // access one user's data via $user->id, $user->username, etc.
}

では、これをビューでどのように使用しますか? 基本的に 2 つのテンプレートが必要です。1 つは外部構造 (テーブル、それを超えるすべてのもの) を保持し、もう 1 つは内部 (テーブルの 1 行) を保持します。これは次のように実行できます。

/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 ユーザーガイドを試してください。通常、 ORMビューなどの優れた例が提供されています。

Kohana は非常に柔軟であるため、モデルに非標準のテーブル名を設定するなど、システムを簡単に変更できます。ただし、規則は通常非常に洗練されており、特に PHP と Kohana の使用を学び始めている場合は、代わりにそれらを使用することをお勧めします。自分のことをすること。

于 2013-10-31T18:04:05.307 に答える