예제 #1
0
 protected function getHasMany($key)
 {
     $db = Database::getDatabase();
     $data = Orm_Object::$_data[$this->className][strtolower($key)];
     $tmp_obj = new $data['fc']();
     if ($data['joined']) {
         $join_table = $this->joinTable($this->tableName, $tmp_obj->tableName);
         $data_b = Orm_Object::$_data[$tmp_obj->className][strtolower($this->className . 's')];
         $sql = "SELECT b.*, ab.* FROM `{$join_table}` ab LEFT JOIN `{$tmp_obj->tableName}` b ON ab.{$data_b['fk']} = b.{$data_b['pk']} WHERE ab.{$data['fk']} = " . $db->quote($this->{$data['pk']});
         return Db_Object::glob($data['fc'], $sql);
     } else {
         if (isset($data['sort'])) {
             $sorter = " SORT BY `{$data['sort']}` ";
         } else {
             $sorter = '';
         }
         $sql = "SELECT * FROM `{$tmp_obj->tableName}` WHERE `{$data['fk']}` = " . $db->quote($this->id) . $sorter;
         return Db_Object::glob($data['fc'], $sql);
     }
 }