2015-10-20 37 views
6

我想讓FOSElasticaBundle正常工作。 ElasticSearch實例正在localhost:9200上運行並進行響應。在填充FOSElasticaBundle/Symfony2時ResponseExeption出錯

我跟着文檔https://github.com/FriendsOfSymfony/FOSElasticaBundle/blob/master/Resources/doc/setup.md

,但在最後一步,我在我的控制檯得到這個錯誤每個步驟:

c:\xampp\htdocs\my\folder>php app/console fos:elastica:populate 
Resetting app 

Fatal error: Wrong parameters for Exception([string $exception [, long $code [, 
Exception $previous = NULL]]]) in C:\xampp\htdocs\my\folder\vendor\rufli 
n\elastica\lib\Elastica\Exception\ResponseException.php on line 34 

[Symfony\Component\Debug\Exception\FatalErrorException] 

Error: Wrong parameters for Exception([string $exception [, long $code [, Exception $previous = NULL]]]) 


fos:elastica:populate [--index[="..."]] [--type[="..."]] [--no-reset] [--offset="..."] [--sleep="..."] [--batch-size="..."] [--ignore-errors] [--no-overwrite-format] 

好像有3個參數強制「__construct」 - 函數,但只有2個。我只是試圖添加「NULL」參數來讓它工作,但是然後另一個函數會拋出一個錯誤。

public function __construct(Request $request, Response $response) 
{ 
    $this->_request = $request; 
    $this->_response = $response; 
    parent::__construct($response->getError()); 
} 

這是常見問題嗎?我如何解決它?

+0

http://stackoverflow.com/questions/21684388/wrong-parameters-for-exception-when-creating-exception-subclass(你必須更新你的PHP版本到5.3) –

+1

我的PHP版本是5.6 .3 – RoyRobsen

+0

好的,你說得對,這不是PHP版本的問題。看代碼,問題必須是$ response-> getError()不返回一個字符串。我查看了代碼,但無法弄清楚爲什麼會發生這種情況。 –

回答

7

這是因爲ruflin /彈性曲線包裝不符合elasticsearch 2.0還兼容。

https://github.com/ruflin/Elastica/issues/946

一種替代,現在(直到ruflin /彈性曲線是2.0升級),是使用最新的1.x版本。

您可以在這裏下載:https://www.elastic.co/downloads/past-releases/elasticsearch-1-7-3

ES 1.7.3 + FosElasticaBundle(使用ruflin /彈性曲線)正常工作與Elasticsearch 1.7.3版本。

+0

確認已解決的錯誤以上與此版本:https://www.elastic.co/downloads/past-releases/elasticsearch-1-7-3(感謝Anil !) – Dung

4

這個問題的原因是,使用elasticsearch 2.0響應錯誤的結構發生了變化(更多細節在這裏:https://github.com/ruflin/Elastica/issues/946)。現在它是一個嵌套數組,而不是一個字符串。 Elastica目前還不完全兼容elasticsearch 2.0。只要Elastica的新版本與Elasticsearch 2.0兼容,它就可能意味着foselastica軟件包也必須更新,因爲這些更改會打破向後兼容性。請注意,這不是唯一向後兼容的重大更改。

跟隨升級的進度,遵循此問題:https://github.com/ruflin/Elastica/issues/946

+0

嗨ruflin,簡單地「殺死」這個錯誤消息後,我的應用程序工作得很好。我沒有看到我的情況更多的問題。最好的祝福! – RoyRobsen

+0

我也評論了錯誤構造,並能夠成功移動 – vrwired