コード例 #1
0
	/**
	 * @param Dkplus_Model_Criteria_Interface $crit = null
	 * @return int The number of deleted records. Die Anzahl der gelöschten Datensätze. 
	 */
	public function delete(Dkplus_Model_Criteria_Interface $crit = null){
		if(
			$this->isReadOnly()
		){
			/**
			 * @see Dkplus_Model_Exception
			 */
			//require-once 'Dkplus/Model/Exception.php';
			throw new Dkplus_Model_Exception('Model is read-only.');
		}
		
		$count = count($this->_getData());
		
		if(
			is_null($crit)
		){
			$this->_data = array();
			$this->_write($this->_data);
			return $count;
		}
		
		$exec = new Dkplus_Model_Criteria_Executor();
		$exec->setArray($this->_getData())
			->setAlias($this->_alias)
			->setCriteria($crit);
		$dataToDelete = $exec->execute();
		$count = count($dataToDelete);
		
		$this->_data = array_udiff($this->_getData(), $dataToDelete, array($this, '_arrayCompare'));
		$this->_write($this->_getData());
		
		return $count;
	}
コード例 #2
0
	/**
	 * @param Dkplus_Model_Criteria_Interface $crit
	 * @return Dkplus_Model_Rowset_Interface
	 */
	public function filter(Dkplus_Model_Criteria_Interface $crit){
		//Zuerst erschaffen wir einen neuen Rowset, der nachher zurückgegeben wird. 
		$rowset = $this->_fetchNewRowset();
		
		$exec = new Dkplus_Model_Criteria_Executor();
		$exec->setCriteria($crit);
		$exec->setArray($this->_rows);
		
		$rowset->addRows($exec->execute());
		
		return $rowset;
	}