1

インデックス内の用語を検索したいときに、symfony2 プロジェクトのサービスとして sphinx php api を使用すると、この警告が表示されます

警告: /var/www/domain.com/Symfony2/src/project/myBundle/services/SphinxClient.php 行 997 の foreach() に無効な引数が指定されました

これは行997です

foreach ( $this->_weights as $weight )

だから私はこのように foreach() の前にテストを追加しました if(!empty($this->_weights))

各 foreach で同じエラーが表示されるので、同じテストを追加しました。

その後、別のエラーが表示されます

Notice: 未定義のプロパティ: prject\MyBundle\services\SphinxClient::$_socket in /var/www/domain.com/Symfony2/src/project/myBundle/services/SphinxClient.php 行 563

私は何時間も問題の原因を探していました。

事前にご協力いただきありがとうございます。

4

2 に答える 2

1

sphinxapi.php ファイルでは、古いコンストラクターが使用されていました。

Delete string ( near 430 )

function SphinxClient()

そして書く:

public function __construct()

そしてすべてとても順調です。

ファイルに名前空間を設定することを忘れないでください (名前を sphinxapi.php から SphinxClient.php に変更しました)。

namespace Acme\MyBundle\Sphinx;

あなたの道は別のものかもしれません。

于 2013-02-07T07:33:37.480 に答える
0

ファイルのソースがわからなければ、役立つことはあまりありません。

sphinxに付属する標準のsphinxapi.phpクラスでは、変数はすべてクラス変数であるため、$ this->_weigthsは配列です。たぶんそれがSymfonyにポッティングされたときに見逃された

于 2012-07-23T13:37:48.567 に答える