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 都会出现相同的错误,所以我添加了相同的测试。

然后出现另一个错误

注意:未定义的属性:prject\MyBundle\services\SphinxClient::$_socket 在 /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)并在 begin 中写入:

namespace Acme\MyBundle\Sphinx;

你的路径可能是别的东西。

于 2013-02-07T07:33:37.480 回答
0

没有看到文件的来源,没有太多的帮助。

在 sphinx 附带的标准 sphinxapi.php 类中,变量都是类变量,所以 $this->_weigths 是一个数组。也许当它被安装到 Symfony 时错过了

于 2012-07-23T13:37:48.567 回答