Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

M2 behavior timestamp #12

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 83 additions & 9 deletions es/orm/behaviors/timestamp.rst
Original file line number Diff line number Diff line change
@@ -1,15 +1,89 @@
Timestamp Behavior
##################
Timestamp
#########

.. php:namespace:: Cake\Model\Behavior
.. php:namespace:: Cake\ORM\Behavior

.. php:class:: TimestampBehavior

.. note::
La documentación no es compatible actualmente con el idioma español en esta página.
El comportamiento del behavior timestamp permite a tus objetos de tabla actualizar uno o más
marcas de tiempo en cada evento del modelo. Esto se utiliza principalmente para rellenar datos
en los campos ``created`` y ``modified``. Sin embargo, con alguna configuración adicional,
puedes actualizar cualquier columna de fecha/hora en cualquier evento que publique una tabla.

Por favor, siéntase libre de enviarnos un pull request en
`Github <https://github.com/cakephp/docs>`_ o utilizar el botón **Improve this Doc** para proponer directamente los cambios.
Uso básico
==========

Usted puede hacer referencia a la versión en Inglés en el menú de selección superior
para obtener información sobre el tema de esta página.
El behavior de timestamp se activa como cualquier otro behavior::

class ArticlesTable extends Table
{
public function initialize(array $config): void
{
$this->addBehavior('Timestamp');
}
}

La configuración por defecto hará lo siguiente:

- Cuando se guarda una nueva entidad, los campos ``created`` y ``modified`` se ajustan a la hora actual.
- Cuando se actualiza una entidad, el campo ``modified`` se establece con la hora actual.

Uso y configuración del behavior
================================

Si necesita modificar campos con nombres diferentes, o desea actualizar campos de
timestamp adicionales en eventos personalizados puede utilizar alguna configuración adicional::

class OrdersTable extends Table
{
public function initialize(array $config): void
{
$this->addBehavior('Timestamp', [
'events' => [
'Model.beforeSave' => [
'created_at' => 'new',
'updated_at' => 'always',
],
'Orders.completed' => [
'completed_at' => 'always'
]
]
]);
}
}

Como puede ver arriba, además del evento estándar ``Model.beforeSave``,
también estamos actualizando la columna ``completed_at`` cuando se completan los pedidos.

Actualización de timestamp en entidades
=======================================

A veces querrá actualizar sólo las marcas de tiempo de una entidad sin cambiar
ninguna otra propiedad. Esto es algunas veces referido como 'tocar' un registro.
En CakePHP puedes usar el método ``touch()`` para hacer exactamente esto::

// Touch based on the Model.beforeSave event.
$articles->touch($article);

// Touch based on a specific event.
$orders->touch($order, 'Orders.completed');

Una vez guardada la entidad, el campo se actualiza.

Tocar registros puede ser útil cuando se desea señalar que un recurso padre
ha cambiado cuando se crea/actualiza un recurso hijo.
Por ejemplo: actualizar un artículo cuando se añade un nuevo comentario.

Guardar actualizaciones sin modificar timestamps
================================================

Para desactivar la modificación automática de la columna ``modified`` al
guardar una entidad puedes marcar el atributo como 'dirty'::

// Marcar la columna modificada como dirty haciendo
// que el valor actual se establezca en la actualización.
$order->setDirty('modified', true);

.. meta::
:title lang=es: Timestamp
:keywords lang=es: maintenance branch,community interaction,community feature,necessary feature,stable release,ticket system,advanced feature,power users,feature set,chat irc,leading edge,router,new features,members,attempt,development branches,branch development