我希望我要求以簡單易懂的方式這個問題中從多個表中選擇。我一直在研究一個處理1個表(jobschedule)的應用程序。所以,我有型號/ Jobschedule.php,型號/ JobscheduleMapper.php,控制器/ JobscheduleController.php,查看/腳本/ jobschedule/* PHTML文件Zend框架表關係 - 應用
所以在我的控制,我會做這樣的事情:
$jobnumber = $jobschedule->getJobnum();
$jobtype = $jobschedule->getJobtype();
$table = $this->getDbTable();
public function listAction()
{
$this->_helper->layout->disableLayout();
$this->view->jobnum = $this->getRequest()->getParam('jobnum', false);
$this->view->items = array();
$jobschedule = new Application_Model_Jobschedule();
$jobschedule->setJobnum($this->view->jobnum);
$mapper = new Application_Model_JobscheduleMapper();
$this->view->entries = $mapper->fetchAll ($jobschedule);
}
,然後在我的映射器II做這樣的事情:
$resultSet = $table->fetchAll($table->select()->where('jobnum = ?', $jobnumber)->where('jobtype = ?', $jobtype));
$entries = array();
foreach ($resultSet as $row) {
$entry = new Application_Model_Jobschedule();
$entry->setJobnum($row->jobnum)
->setJobtype($row->jobtype)
->setJobdesc($row->jobdesc)
->setJobstart($row->jobstart)
->setJobend($row->jobend)
->setJobfinished($row->jobfinished)
->setJobnotes($row->jobnotes)
->setJobid($row->jobid);
$entries[] = $entry;
}
return $entries;
}
然後在我看來,我可以操控$條目。那麼,我現在遇到的問題是,還有另一個名爲'jobindex'的表,其中有一個名爲'jobno'的列。 'jobno'列與'jobschedule'表中的'jobnum'列保持相同的記錄。我需要在'jobindex'表中找到'store_type'列的值,其中jobindex.jobno = joschedule.jobnum(例如1234是jobno/jobnum)。有人可以幫我嗎?我是否需要創建一個jobindex映射器和控制器?如果是這樣,那就完成了......我只是不知道如何一次處理兩個表並獲得我需要的記錄。並在哪裏把代碼...在我的控制器?
我會盡快嘗試。非常感謝您的幫助,敬請關注。 – 2012-04-11 01:45:14
我想我真的很困惑自己。我要再試一次解釋,看看你是否想出了不同的東西。 jobschedule在其中有一個名爲jobnum的列,jobindex表有一個名爲jobno的列。這些中的每一個都保持相同的值。 jobindex表也有一個名爲store_type的行。我想找到jobno和jobnum匹配的所有記錄AND store_type ==一些參數,我通過我的POST。所以,如果?store_type = WM,我想在頁面上顯示從jobschedule表,其中來自jobindex表store_type等於WM和所有記錄中記錄的jobno = jobnum從jobschedule – 2012-04-11 02:59:44
我想是儘可能具體,使感。如果你們需要我更好地解釋我會......這讓我堅持了幾天。 – 2012-04-11 03:00:33