Commit ae2490d8eb1371ce5740fb2969e904a352bed8d7
1 parent
d65209c9
KTEntityUtil::getList2 doesn't need the table passed.
KTEntityUTil::getByDict can be passed a dictionary of fields to values
to look up.
KTEntityUtil::getBy{,Dict} can be asked to return multiple results.
git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@3484 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
31 additions
and
10 deletions
lib/ktentity.inc
| ... | ... | @@ -220,6 +220,11 @@ class KTEntity { |
| 220 | 220 | } |
| 221 | 221 | |
| 222 | 222 | class KTEntityUtil { |
| 223 | + function &getList2($sClassName, $sWhereClause = null) { | |
| 224 | + $sTable = call_user_func(array($sClassName, "_table")); | |
| 225 | + return KTEntityUtil::getList($sTable, $sClassName, $sWhereClause); | |
| 226 | + } | |
| 227 | + | |
| 223 | 228 | function &getList($sTable, $sClassName, $sWhereClause = null) { |
| 224 | 229 | $sQuery = "SELECT id FROM " . $sTable;/*ok*/ |
| 225 | 230 | $aParams = array(); |
| ... | ... | @@ -290,20 +295,36 @@ class KTEntityUtil { |
| 290 | 295 | return $oObject; |
| 291 | 296 | } |
| 292 | 297 | |
| 293 | - function &getBy($sClassName, $sField, $mValue) { | |
| 294 | - $sTable = call_user_func(array($sClassName, "_table")); | |
| 295 | - $sWhereClause = array("$sField = ?", array($mValue)); | |
| 296 | - $aObjects =& KTEntityUtil::getList($sTable, $sClassName, $sWhereClause); | |
| 298 | + function &getBy($sClassName, $aField, $mValue, $bMulti = false) { | |
| 299 | + if (is_string($aField)) { | |
| 300 | + $sWhereClause = array("$aField = ?", array($mValue)); | |
| 301 | + } else { | |
| 302 | + $aWhere = array(); | |
| 303 | + foreach ($aField as $k => $sField) { | |
| 304 | + $aWhere[] = array("$sField = ?", array($mValue[$k])); | |
| 305 | + } | |
| 306 | + $sWhereClause = KTUtil::whereToString($aWhere); | |
| 307 | + } | |
| 308 | + $aObjects =& KTEntityUtil::getList2($sClassName, $sWhereClause); | |
| 297 | 309 | if (PEAR::isError($aObjects)) { |
| 298 | 310 | return $aObjects; |
| 299 | 311 | } |
| 300 | - if (count($aObjects) === 0) { | |
| 301 | - return PEAR::raiseError("No objects returned"); | |
| 302 | - } | |
| 303 | - if (count($aObjects) > 1) { | |
| 304 | - return PEAR::raiseError("Multiple objects returned"); | |
| 312 | + if ($bMulti === false) { | |
| 313 | + if (count($aObjects) === 0) { | |
| 314 | + return PEAR::raiseError("No objects returned"); | |
| 315 | + } | |
| 316 | + if (count($aObjects) > 1) { | |
| 317 | + return PEAR::raiseError("Multiple objects returned"); | |
| 318 | + } | |
| 319 | + return $aObjects[0]; | |
| 320 | + } else { | |
| 321 | + return $aObjects; | |
| 305 | 322 | } |
| 306 | - return $aObjects[0]; | |
| 323 | + } | |
| 324 | + | |
| 325 | + function &getByDict($sClassName, $aDict, $bMulti = false) { | |
| 326 | + return KTEntityUtil::getBy($sClassName, array_keys($aDict), array_values($aDict), $bMulti); | |
| 327 | + | |
| 307 | 328 | } |
| 308 | 329 | } |
| 309 | 330 | ... | ... |