Commit 850bcf4c authored by Bas de Nooijer's avatar Bas de Nooijer

Added support for query placeholders to the select query, filterquery and facet query classes

parent c14a5f2f
......@@ -188,10 +188,15 @@ class Solarium_Query_Select extends Solarium_Query
* escaping of user input.
*
* @param string $query
* @param array $bind Bind values for placeholders in the query string
* @return Solarium_Query_Select Provides fluent interface
*/
public function setQuery($query)
public function setQuery($query, $bind = null)
{
if (!is_null($bind)) {
$query = $this->getHelper()->assemble($query, $bind);
}
return $this->_setOption('query', trim($query));
}
......
......@@ -72,10 +72,16 @@ class Solarium_Query_Select_Component_Facet_Query extends Solarium_Query_Select_
* This overwrites the current value
*
* @param string $query
* @param array $bind Bind values for placeholders in the query string
* @return Solarium_Query_Select_Facet_Query Provides fluent interface
*/
public function setQuery($query)
public function setQuery($query, $bind = null)
{
if (!is_null($bind)) {
$helper = new Solarium_Query_Helper;
$query = $helper->assemble($query, $bind);
}
return $this->_setOption('query', $query);
}
......
......@@ -111,10 +111,16 @@ class Solarium_Query_Select_FilterQuery extends Solarium_Configurable
* This overwrites the current value
*
* @param string $query
* @param array $bind Bind values for placeholders in the query string
* @return Solarium_Query Provides fluent interface
*/
public function setQuery($query)
public function setQuery($query, $bind = null)
{
if (!is_null($bind)) {
$helper = new Solarium_Query_Helper;
$query = $helper->assemble($query, $bind);
}
$this->_query = trim($query);
return $this;
}
......
......@@ -71,5 +71,9 @@ class Solarium_Query_Select_Component_Facet_QueryTest extends PHPUnit_Framework_
$this->assertEquals('category:1', $this->_facet->getQuery());
}
public function testSetAndGetQueryWithBind()
{
$this->_facet->setQuery('id:%1%', array(678));
$this->assertEquals('id:678', $this->_facet->getQuery());
}
}
......@@ -69,6 +69,12 @@ class Solarium_Query_Select_FilterQueryTest extends PHPUnit_Framework_TestCase
$this->assertEquals('category:1', $this->_filterQuery->getQuery());
}
public function testSetAndGetQueryWithBind()
{
$this->_filterQuery->setQuery('id:%1%', array(678));
$this->assertEquals('id:678', $this->_filterQuery->getQuery());
}
public function testAddTag()
{
$this->_filterQuery->addTag('testtag');
......
......@@ -56,6 +56,12 @@ class Solarium_Query_SelectTest extends PHPUnit_Framework_TestCase
$this->assertEquals('*:*', $this->_query->getQuery());
}
public function testSetAndGetQueryWithBind()
{
$this->_query->setQuery('id:%1%', array(678));
$this->assertEquals('id:678', $this->_query->getQuery());
}
public function testSetAndGetResultClass()
{
$this->_query->setResultClass('MyResult');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment