Добавлены комментарии к классу Model

This commit is contained in:
Krivchikov Dmitry 2014-04-08 11:57:25 +04:00
parent 85b7b234cc
commit ef53ace6fc
1 changed files with 33 additions and 1 deletions

View File

@ -23,12 +23,21 @@ class Model
return isset($this->_vals_[$name]) ? $this->_vals_[$name] : null;
}
/**
* Получаем Primary Key
* @return type
*/
private function getPk()
{
$res = App::$DB->query("SHOW KEYS FROM " . $this->_tableName_ . " WHERE Key_name = 'PRIMARY'")->fetch(PDO::FETCH_ASSOC);
return $res["Column_name"];
}
/**
* Возвращает объект - запись в БД.
* @param int $id
* @return \Model
*/
function getByPK($id)
{
$this->_vals_ = App::$DB->query('SELECT * FROM ' . $this->_tableName_ . ' WHERE ' . $this->_primaryKey_ . ' = ' . $id)->fetch(PDO::FETCH_ASSOC);
@ -36,8 +45,13 @@ class Model
return $this;
}
/**
* Возвращает массив с ассоциативными массивами, соответствующими записями в БД.
* @return array
*/
function getAll()
{
/* TODO: Переделать этот метод. Сделать статическим, возвращать массив объектов. */
$res = App::$DB->query('SELECT * FROM ' . $this->_tableName_);
$this->_id_ = NULL; // Это больше не конкретная запись
@ -51,11 +65,21 @@ class Model
return $ready;
}
/**
* Удаляет запись из БД.
* @param int $id
* @return boolean
*/
function delete($id)
{
return App::$DB->query('DELETE FROM ' . $this->_tableName_ . ' WHERE ' . $this->_primaryKey_ . ' = ' . $id);
return $id ? App::$DB->query('DELETE FROM ' . $this->_tableName_ . ' WHERE ' . $this->_primaryKey_ . ' = ' . $id) : false;
}
/**
* Добавляет новую запись в БД.
* @param array $values - ассоциативный массив соо значениями.
* @return int/boolean - id добавленной записи или false.
*/
function add($values)
{
@ -70,6 +94,10 @@ class Model
}
}
/**
* Сохраняет объект в БД.
* @return object/boolean
*/
function save()
{
if (!$this->_id_ || !$this->_vals_)
@ -84,6 +112,10 @@ class Model
return $res ? $this : FALSE;
}
/**
* Возвращает значения полей объекта в виде ассоциативного массива.
* @return array
*/
function getValues()
{
return $this->_vals_;