当我想在索引中搜索术语时,我在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''ShinxClient::$_socket-in in/var/www/domain.com/Symfony2/src/project/MyBundle/services/SphinxClient.php行563
我找了几个小时的问题根源。
谢谢你事先的帮助。
在sphinxapi.php文件中使用了旧的构造函数。
Delete string ( near 430 )
function SphinxClient()
并写入:
public function __construct()
一切都很好。
不要忘记在文件中设置名称空间(我将sphinxapi.php重命名为SphinxClient.php),并在开始时写入:
namespace Acme'MyBundle'Sphinx;
你的路可能是另一条路。
如果看不到文件的来源,没有什么可以帮助的。
在sphinx附带的标准sphinxapi.php类中,变量都是类变量,因此$this->_weighs是一个数组。也许当它被赋予Symfony 时错过了