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:
@@ -261,7 +261,7 @@ class DibiResult extends /*Nette::*/Object implements IDataSource
|
|||||||
if ($this->xlat !== NULL) {
|
if ($this->xlat !== NULL) {
|
||||||
foreach ($this->xlat as $col => $type) {
|
foreach ($this->xlat as $col => $type) {
|
||||||
if (isset($row[$col])) {
|
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);
|
$key = key($row);
|
||||||
if (isset($this->xlat[$key])) {
|
if (isset($this->xlat[$key])) {
|
||||||
$type = $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;
|
return $value;
|
||||||
@@ -494,7 +494,7 @@ class DibiResult extends /*Nette::*/Object implements IDataSource
|
|||||||
*/
|
*/
|
||||||
final public function setType($col, $type, $format = NULL)
|
final public function setType($col, $type, $format = NULL)
|
||||||
{
|
{
|
||||||
$this->xlat[$col] = array($type, $format);
|
$this->xlat[$col] = array('type' => $type, 'format' => $format);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -49,6 +49,8 @@ abstract class DibiTable extends /*Nette::*/Object
|
|||||||
/** @var array */
|
/** @var array */
|
||||||
protected $blankRow = array();
|
protected $blankRow = array();
|
||||||
|
|
||||||
|
/** @var array of pairs [type, format] */
|
||||||
|
protected $types = array();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -137,7 +139,10 @@ abstract class DibiTable extends /*Nette::*/Object
|
|||||||
$this->connection->query(
|
$this->connection->query(
|
||||||
'INSERT INTO %n', $this->name, '%v', $this->prepare($data)
|
'INSERT INTO %n', $this->name, '%v', $this->prepare($data)
|
||||||
);
|
);
|
||||||
return $this->connection->insertId();
|
|
||||||
|
if ($this->primary) {
|
||||||
|
return $this->connection->insertId();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -284,6 +289,7 @@ abstract class DibiTable extends /*Nette::*/Object
|
|||||||
*/
|
*/
|
||||||
protected function complete($res)
|
protected function complete($res)
|
||||||
{
|
{
|
||||||
|
$res->setTypes($this->types);
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user