예제 #1
0
파일: clsDB.php 프로젝트: shifter/ospap2
 /** Loads and returns an object that this object is linked to. 
  * $name       The name of the foreign object in the database.  For example, if the entry for the foreign 
  *             object was 'test_otherobject_id', the $name would be 'otherobject'. 
  * $extrainfo  If this is set, the key used will be test_otherobject_extrainfo_id. This is used when multiple
  *             references to a foreign table are required. */
 public function getForeignObject($name, $extrainfo = '')
 {
     if (!clsDB::isValidFieldName($name)) {
         throw new Exception(ERRORMSG_INVALID);
     }
     if (!clsDB::isValidFieldName($extrainfo)) {
         throw new Exception(ERRORMSG_INVALID);
     }
     $strForeignName = clsDB::toForeignName($name, $extrainfo);
     if (isset($this->arrForeignObjects[$strForeignName])) {
         return $this->arrForeignObjects[$strForeignName];
     } else {
         $foreignID = $this->get($strForeignName);
         $newDB = new clsDB($name, $foreignID);
         $this->arrForeignObjects[$strForeignName] = $newDB;
         return $newDB;
     }
 }