異なる顧客のすべてのテーブルに動的プレフィックスを設定したいとします。私は顧客Aを得て、私のテーブルは "a_tablename"などとなるでしょう。Zend Frameworkテーブルプレフィックスと結合が失敗する
これはすべて正常に動作しますが、Zendフレームワークでjoin-queryを実行すると、デフォルトテーブル"tablename")、接頭辞付きではありません。
$select = $hours->select()
->setIntegrityCheck(false)
->from(array('h' => 'hours'), array('id', 'type', 'remark', 'minutes', 'date'))
->join(array('p' => 'projects'), 'h.project_id = p.id', array('description' => 'description', 'order_nr' => 'order_nr'))
->join(array('c' => 'clients'), 'p.client_id = c.id', array('client' => 'name'))
->where($this->db->quoteInto('h.user_id = ?', $userId, 'INTEGER'))
->where($this->db->quoteInto('h.date >= ?', $startDate))
->where($this->db->quoteInto('h.date <= ?', $endDate))
->order(array('h.date', 'h.type'));
$rows = $hours->fetchAll($select);
$this->view->hours = $rows;
これは参加
非加入のクエリは、顧客のa_clients 'テーブルを選択すると、標準テーブル(クライアント)を、取る:
は、ここに私のコードの抜粋です。私は何が欠けていますか? はここに私のクラスの拡張です:
抽象クラスZend_Db_Tableがが取得Zend_Db_Table_Abstract を拡張{ 関数_setupTableName(){ 親:: _ setupTableName(); $ prefix = 'StackOverflow'; //多分configから。 $ this->名前= $接頭辞。 '' $ this - > _ name; } }
(StackOverflowのがoffcourseだけで固定値であるが、それはテストのためだと私はコピー&ペーストして、ここから:P)