This commit is contained in:
2023-09-01 13:40:30 +03:00
parent 274b2e456d
commit e95c9f744c
7 changed files with 65 additions and 17 deletions
+55 -12
View File
@@ -4,6 +4,8 @@
namespace Bx\Null\ORM;
use Bitrix\Main\ORM\Fields\DatetimeField;
use Bitrix\Main\Type\DateTime;
use Wt\Core\ORM\ADataManager;
class NullTable extends ADataManager
@@ -32,20 +34,61 @@ class NullTable extends ADataManager
public static function getMap()
{
return array(
'ID' => array(
'data_type' => 'integer',
'ID' => new \Bitrix\Main\Entity\IntegerField('ID', [
'primary' => true,
'autocomplete' => true,
'title' => 'ID',
),
'CREATED_AT' => array(
'data_type' => 'datetime',
'title' => 'CREATED_AT',
),
'UPDATED_AT' => array(
'data_type' => 'datetime',
'title' => 'UPDATED_AT',
),
'title' => 'Id',
]),
'CREATED_AT' => new \Bitrix\Main\Entity\DatetimeField('CREATED_AT', [
'default_value' => new \Bitrix\Main\Type\DateTime(),
'title' => 'CreatedAt',
'in_form' => false,
]),
'UPDATED_AT' => new \Bitrix\Main\Entity\DatetimeField('UPDATED_AT', [
'title' => 'UpdatedAt',
'in_form' => false,
]),
);
}
/**
* @param $id
* @param array $fields
* @return \Bitrix\Main\ORM\Data\UpdateResult
* @throws \Bitrix\Main\ObjectException
*/
public static function update($id, $fields)
{
foreach (static::getEntity()->getFields() as $field){
if(is_a($field, DatetimeField::class)){
if(isset($fields[$field->getName()]) && !is_a($fields[$field->getName()], DateTime::class)) {
$fields[$field->getName()] = new \Bitrix\Main\Type\DateTime($fields[$field->getName()]);
}
}
}
$fields = array_merge($fields, [
'UPDATED_AT' => new \Bitrix\Main\Type\DateTime(), // date(CDatabase::DateFormatToPHP(FORMAT_DATETIME))
]);
$result = parent::update($id, $fields);
return $result;
}
/**
* @param array $fields
* @return \Bitrix\Main\ORM\Data\AddResult
* @throws \Bitrix\Main\ObjectException
*/
public static function add($fields)
{
$fields = array_merge($fields, [
'CREATED_AT' => new \Bitrix\Main\Type\DateTime(),
'UPDATED_AT' => new \Bitrix\Main\Type\DateTime(),
]);
$result = parent::add($fields);
return $result;
}
}