1
0
mirror of https://github.com/dg/dibi.git synced 2025-08-05 05:37:39 +02:00

- DibiTable::$types enables auto-convert columns to specified type

- DibiTable::insert() returns NULL, when $primary is FALSE
This commit is contained in:
David Grudl
2008-07-22 13:12:53 +00:00
parent 85d190ec05
commit e48cd54a41
2 changed files with 10 additions and 4 deletions

View File

@@ -261,7 +261,7 @@ class DibiResult extends /*Nette::*/Object implements IDataSource
if ($this->xlat !== NULL) {
foreach ($this->xlat as $col => $type) {
if (isset($row[$col])) {
$row[$col] = $this->convert($row[$col], $type[0], $type[1]);
$row[$col] = $this->convert($row[$col], $type['type'], $type['format']);
}
}
}
@@ -299,7 +299,7 @@ class DibiResult extends /*Nette::*/Object implements IDataSource
$key = key($row);
if (isset($this->xlat[$key])) {
$type = $this->xlat[$key];
return $this->convert($value, $type[0], $type[1]);
return $this->convert($value, $type['type'], $type['format']);
}
return $value;
@@ -494,7 +494,7 @@ class DibiResult extends /*Nette::*/Object implements IDataSource
*/
final public function setType($col, $type, $format = NULL)
{
$this->xlat[$col] = array($type, $format);
$this->xlat[$col] = array('type' => $type, 'format' => $format);
}

View File

@@ -49,6 +49,8 @@ abstract class DibiTable extends /*Nette::*/Object
/** @var array */
protected $blankRow = array();
/** @var array of pairs [type, format] */
protected $types = array();
/**
@@ -137,8 +139,11 @@ abstract class DibiTable extends /*Nette::*/Object
$this->connection->query(
'INSERT INTO %n', $this->name, '%v', $this->prepare($data)
);
if ($this->primary) {
return $this->connection->insertId();
}
}
@@ -284,6 +289,7 @@ abstract class DibiTable extends /*Nette::*/Object
*/
protected function complete($res)
{
$res->setTypes($this->types);
return $res;
}