2012-06-25 14 views
8

¿Hay alguna manera de incluir expresiones de MySQL como NOW() en la compilación actual de ZF2 (2.0.0beta4) a través de Zend \ Db y/o TableGateway insert()/update() declaraciones?ZF2 Zend Db Insertar/Actualizar usando la expresión Mysql (Zend Db Sql Expression?)

Aquí hay un post relacionado en la lista de correo, aunque no ha sido contestada: http://zend-framework-community.634137.n4.nabble.com/Zend-Db-Expr-and-Transactions-in-ZF2-Db-td4472944.html

Parece que ZF1 usa algo como:

$data = array( 
     'update_time' => new \Zend\Db\Expr("NOW()") 
    ); 

Y después de mirar a través de Zend \ Db \ sql \ Expresión traté:

$data = array(
     'update_time' => new \Zend\Db\Sql\Expression("NOW()"), 
    ); 

Pero el siguiente error:

Catchable fatal error: Object of class Zend\Db\Sql\Expression could not be converted to string in /var/www/vendor/ZF2/library/Zend/Db/Adapter/Driver/Pdo/Statement.php on line 256 

Según lo recomendado aquí: http://zend-framework-community.634137.n4.nabble.com/ZF2-beta3-Zend-Db-Sql-Insert-new-Expression-now-td4536197.html Actualmente estoy configurando la fecha con el código PHP, pero prefiero utilizar el servidor MySQL como la única fuente de verdad para la fecha/hora.

$data = array(
     'update_time' => date('Y-m-d H:i:s'), 
    ); 

Gracias, agradezco cualquier aporte!

Respuesta

2

No estoy seguro si arreglaron esto en las últimas actualizaciones, pero era un saber bug e incluso si dijeron que lo arreglaron, para mí todavía no funcionó después de la corrección.

+0

Gracias por la respuesta y el enlace, voy a actualizar a la última fuente y ver si persiste. –

+0

zend framework 2.0 beta 6 y todavía no hay solución a este problema!?!?! – ufk

+0

problema resuelto en zend framework 2.0 beta 7 – ufk

11

Zend_Db_Sql_Expression funciona para mí ahora.

$data = array(
    'update_time' => new \Zend\Db\Sql\Expression("NOW()"), 
); 
+0

¿Te importaría agregar un poco más de información sobre esta respuesta? Gracias – Max

+0

Hola Max, ¿qué puedo ayudarte? –

0

Funciona para mí también. Tal vez, tu problema fue como el mío. La conversión de error de cadena se debió a que el parámetro que pasé al método era elementos de la matriz y no la matriz. Verifique esto y asegúrese de que está pasando $ object-> method ($ array).

Cuestiones relacionadas