1

私はfetchRowを持っています、それはそれのように行われます:

$db = new Database();
$data = $db->fetchRow($db->select()->where('id = ?',$id));

これで、次のようにファイルテーブルからすべてのファイルを取得したいと思います。

$files = new Database();
$photos = $files->fetchAll($files->select()->where('id = ?',$data->id));

しかし、2つの異なるオブジェクトが返されます。どうすれば、1つのオブジェクトにのみ追加できますか?

私が行った場合:

$this->view->photos = $photos;
$this->view->data = $data;

動作しますが、データ内の写真をマージするにはどうすればよいですか?

よろしくお願いします。

4

2 に答える 2

1

テーブルがさまざまなタイプのファイルのデータセットである場合は、それらがどのようにハイドレイトされるかを制御する必要があります。クエリから返されるオブジェクト。これを行うには、テーブル用に独自のRowsetクラスを作成し、それをDatabaseクラスのプロパティとして設定する必要があります(Zend_Db_Tableを想定)。

この行セットクラスでは、ハイドレイトされた行のプロパティを調べてから、「データ」または「写真」を使用するクラスを選択します。一貫性を保つために、単一のレコードのハイドレーションを処理するために(つまり、findメソッドを使用して)テーブルクラスを変更する必要もあります。

于 2010-08-08T02:07:47.267 に答える
0

試す

$db = new Database();
$data = $db->fetchRow($db->select()->where('id = ?',$id));

$files = new Database();
$photos = $files->fetchAll($files->select()->where('id = ?',$data->id));



array_push( $photos, $data);
于 2010-08-08T02:09:46.783 に答える