我已經編寫代碼來搜索名字和姓氏,並顯示這些特定記錄(如果可用)並執行諸如更新和刪除這些記錄等操作,我已經編寫了以下代碼來搜索請告訴我什麼是建立。我正在以下錯誤搜索控制器正確的做法:在Zend框架中搜索一組記錄
Message: Method "select" does not exist and was not trapped in __call()
我已經寫在控制器中的代碼是:
public function searchAction($params)
{
$query = $this->select()
->from(
array('EMPLOYEES'),
array('FIRST_NAME','LAST_NAME','SALARY','HIREDATE')
);
$query = $this->_makeParams($query,$params);
return $this->fetchAll($query);
}
private function _makeParams($query, $params)
{
$firstname = isset($params['firstname']) ? trim($params['firstname']) : '';
$lastname = isset($params['lastname']) ? trim($params['lastname']) : '';
$salary = isset($params['salary']) ? trim($params['salary']) : '';
$hiredate= isset($params['hiredate']) ? trim($params['hiredate']) : '';
if($firstname!='')
{
$name = '%'.$this->quote($firstname).'%';//quote is my own function
$query->where("EMPLOYEES.FIRST_NAME LIKE '?'",$firstname);
}
if($lastname!='')
{
$query->where("EMPLOYEES.LAST_NAME =?",$lastname);
}
if($salary!='')
{
$query->where("EMPLOYEES.SALARY=?",$salary);
}
if($hiredate!='')
{
$query->where("EMPLOYEES.HIRE_DATE=?",$hiredate);
}
}
我已經在application.ini中完成了以下操作:resources.db.adapter =「pdo_mysql」 resources.db.params.host =「localhost」 resources.db.params.username =「根」 resources.db.params.password = 「」 resources.db.params.dbname = 「廣場」 resources.db.params.charset = 「utf-8」 resources.db.isDefaultTableAdapter =真 – user2176313 2013-03-28 10:10:09
更新,以反映您的用例。根據指示添加$ db變量以訪問默認的數據庫適配器。這假定您只有一個適配器設置。 – RockyFord 2013-03-28 10:42:13
我的建議是,您將學習如何使用模型與數據庫交互。一旦開發出適合您的模型結構,您會發現使用數據庫更容易,並且您的控制器將更加簡單。 – RockyFord 2013-03-28 10:44:36