0

Codeigniter は、次のような一般的な「オブジェクト」としてデータベース クエリを返すことができます。

$q = $this->db->get("some_table");
$obj = $this->q->row();
$var = $obj->some_property

私の場合、パブリック変数がデータベース列と 1 対 1 である PHP クラスと、いくつかのパブリック メソッドを作成したいと考えています。一般的な「Row」オブジェクトをカスタム クラス オブジェクトにキャストまたは変換する簡単な方法はありますか? 確かに可能であることをほのめかす投稿を読んだことがありますが、ほとんどの場合、非常にハックなシリアライズ/デシリアライズソリューションが含まれています。過去に私はちょうどやった:

public function __construct($row) {
  $this->prop = $row->prop;
  $this->id = $row->id;
  $this->value = $row->value;
}

そして、これは非常に面倒で、見苦しいコードになることがわかりました。

4

1 に答える 1

3

以下の 3 番目のセクションを参照してくださいresult()

CodeIgniter ユーザーガイド: クエリ結果の生成

また、結果オブジェクトごとにインスタンス化するクラスを表す文字列を result() に渡すこともできます (注: このクラスをロードする必要があります)。

$query = $this->db->query("SELECT * FROM users;");

foreach ($query->result('User') as $row)
{
    echo $row->name; // call attributes
    echo $row->reverse_name(); // or methods defined on the 'User' class
}
于 2013-03-28T23:31:24.843 に答える