2012-06-25 21 views
8

Zend \ Db aracılığıyla geçerli ZF2 yapısında (2.0.0beta4) NOW() gibi MySQL ifadelerini dahil etmenin bir yolu var mı ve/veya TableGateway insert()/update() ifadeleri? o cevap verilmemekle birlikte Burada ZF2 Zend Db Mysql İfadesini Kullanarak Ekleme/Güncelleştirme (Zend Db Sql Expression?)

, posta listesinde bir ilgili yayın geçerli: http://zend-framework-community.634137.n4.nabble.com/Zend-Db-Expr-and-Transactions-in-ZF2-Db-td4472944.html

O ZF1 gibi bir şey kullanılan anlaşılmaktadır:

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

Ve Zend \ Db \ gözden geçirdikten sonra sQL \ Expression denedim:

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

Ama aşağıdaki hatayı alıyorum:

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 

Burada önerildiği gibi: http://zend-framework-community.634137.n4.nabble.com/ZF2-beta3-Zend-Db-Sql-Insert-new-Expression-now-td4536197.html Şu anda sadece tarihi PHP kodu ile ayarlıyorum, fakat MySQL sunucusunu tarih/zaman için tek bir gerçek kaynağı olarak kullanmayı tercih ediyorum.

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

Teşekkürler, herhangi bir girdi için teşekkür ederiz!

cevap

2

En son güncelleştirmelerde bu sorunu çözüp çözmediklerinden emin değilim, ancak bug olduğunu biliyordu ve düzeltildiğini söylese bile, benim için hala düzeltme işleminden sonra çalışmadı.

+0

sayesinde, son kaynağına güncellemek ve devam edip etmediğini göreceğiz. –

+0

zend framework 2.0 beta 6 ve hala bu soruna bir çözüm!!!?! – ufk

+0

sorunu zend framework 2.0 beta 7'de çözüldü – ufk

11

Zend_Db_Sql_Expression şimdi benim için çalışıyor.

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

Bu yanıtın etrafına biraz daha bilgi ekleyebilir misiniz? Teşekkür ederim – Max

+0

Merhaba Max, ne yardımcı olabilirim? –

0

Benim için de çalışıyor. Belki senin sorunun benimki gibiydi. Dize hatası dönüşümü, yönteme geçirdiğim parametrenin dizinin değil, dizinin öğeleri olmasıydı. Bunu kontrol edin ve $ object-> method ($ dizi) ilettiğinizden emin olun.