0

基本的にセッターとゲッターのメソッドを持つ 3 つのモデル (データベース テーブルの表現) があります。アクションメソッドを持つサービスクラスがあります。サービス クラス メソッドの 1 つで、2 つのテーブルを結合するクエリを作成しています。クエリ結果に対して単一のオブジェクトを作成する方法を知りたいです。

例えば:

私は2つのモデルファイルm1.phpとm2.phpを持っています

m1.php

class M1Model {
  public $id;
  public $name;

  public function setM1ID($id) {
    $this->id = $id;
  }

  public function setM1Name($name) {
    $this->name = $name;
  }

  public function getM1ID() {
    return $this->id;
  }

  public function getM1Name() {
    $this->name;
  }
}

m2.php

class M2Model {

  public $id;
  public $cat_name;
  public $m1_id;

  public function setM2ID($id) {
    $this->id = $id;
  }

  public function setM2CatName($cat_name) {
    $this->cat_name = $cat_name;
  }

  public function setM1ID($m1_id) {
    $this->m1_id = $m1_id;
  }

  public function getM2ID() {
    return $this->id;
  }

  public function getM2CatName() {
    return $this->cat_name;
  }

  public function getM1ID() {
    return $this->m1_id;
  }
}

service.php

include m1.php;
include m2.php;

class DataService {

  function __construct() {
    $m1 = new M1Model();
    $m2 = new M2Model();
  }

  function getAllData() {
    $query = "database query using join";
    //Here I want to return object (Not generic object)
    return $object;
  }
}

getAllData() から、単一のオブジェクトと非汎用オブジェクトを返したいです。どうすればいいですか?

4

2 に答える 2

0

PDOStatement::fetch(PDO::FETCH_OBJ)またはを使用してクエリの結果を取得しますmysqli_fetch_object()

PHPのドキュメントを参照してください。

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
$result = $sth->fetch(PDO::FETCH_OBJ);
print $result->NAME;
于 2012-11-24T13:38:56.867 に答える
0

必要なものが DataService オブジェクトである場合は、 $query を DataService コンストラクター内に配置できます...

于 2012-11-25T08:09:24.057 に答える