public function createDao($tableName) { if (!$this->pdoReady()) { throw new PeeweeException("接続が初期化されていません"); } if (empty($tableName)) { throw new PeeweeException("テーブル名が指定されていません。"); } $dao = Dao::create($this->pdo, $tableName); return $dao; }
public function create(Vo $vo) { $vo->setSenha(md5($vo->getSenha())); return parent::create($vo); }
public function search($conditions = array(), $page = array(), $relations = array()) { if (!$this->pdoReady()) { throw new Exception("接続が初期化されていません"); } if (empty($this->tableName)) { throw new Exception("テーブル名を指定してください"); } if ($conditions == null) { $conditions = array(); } if ($page == null) { $page = array(); } if ($relations == null) { $relations = array(); } $sql = "select * from " . $this->tableName; if (!empty($conditions)) { $sql .= " where "; $index = 0; foreach ($conditions as $key => $value) { if ($index != 0) { $sql .= " and "; } $sql .= $key . "= :{$key} "; $index++; } } $pageNumber = $page["page"]; $pageCount = $page["count"]; if (empty($pageNumber) || empty($pageCount)) { } else { $offset = ($pageNumber - 1) * $pageCount; $sql .= " limit " . $offset . " , " . $pageCount; } $stmt = $this->pdo->prepare($sql); foreach ($conditions as $key => $value) { $stmt->bindValue(":" . $key, $value); } $result = $stmt->execute(); $resultArray = array(); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $Dto = new Dto($this->tableName); foreach ($row as $columnKey => $columnValue) { $Dto->{$columnKey} = $this->convertTypeMismatch($columnKey, $columnValue); } $resultArray[] = $Dto; } if (!empty($relations)) { for ($i = 0; $i < count($resultArray); $i++) { $result = $resultArray[$i]; foreach ($relations as $relationTableName => $relationKeys) { $relationParams = array(); foreach ($relationKeys as $relationKey => $foreignKey) { $relationParams[$foreignKey] = $result->{$relationKey}; } $relationDao = Dao::create($this->pdo, $relationTableName); $relationList = $relationDao->search($relationParams); $result->{$relationTableName} = $relationList; } $resultArray[$i] = $result; } } return $resultArray; }