2013-10-22 85 views
0

首先,對不起英語不好。ZF2 TableGateway從csv文件加載時重複值

我想從這樣的CSV列表加載多個用戶:

<?php 
$handle = fopen ("teste.csv","r"); 
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    $user = $this->getServiceLocator()->get('User'); 
    $user->exchangeArray(
     array('firsname'=>$data[0], 
       'lastname'=>$data[1], 
       'email'=>$data[2], 
       'adress'=>$data[3], 
       'phone'=>$data[4] 
      ) 
     ); 
    $userTable = $this->getServiceLocator()->get('UserTable'); 
    $userTable->save($user); 
} 
fclose ($handle); 
?> 

但我不知道爲什麼它重複相同的值每一次,因爲總是有每行相同的值.. 。

貌似服務管理始終保存之前克隆相同的對象..

誰能幫助?看到

回答

0

嘗試,如果這有差別:

$user = (clone) $this->getServiceLocator()->get('User'); 

服務管理器將每次只爲您提供一個新的實例,如果你明確告訴它

http://framework.zend.com/manual/2.0/en/modules/zend.service-manager.quick-start.html 

備註部分共享服務。這會告訴服務經理每次你想要一個新的用戶對象,那麼你將不需要克隆上述對象

'shared' => array(
     // Usually, you'll only indicate services that should _NOT_ be 
     // shared -- i.e., ones where you want a different instance 
     // every time. 
     'User' => false, 
    ), 
+0

Bulllseye!非常感謝你! –