Magic query arguments - fixed a regression: URL exceeding 4000 characters (!) because the serialized queries were including magic arguments. Those arguments must be computed right before executing the query. An alternative to this implementation could be to serialize a DBSearch with its parameters computed at serialization time.

SVN:trunk[3939]
This commit is contained in:
Romain Quetiez
2016-03-04 15:03:46 +00:00
parent e26eed3142
commit ced87e71cb

View File

@@ -366,7 +366,7 @@ class DBObjectSet
$oFilter = $this->m_oFilter->DeepClone();
// Note: the arguments found within a set can be object (but not in a filter)
// That's why PrepareQueryArguments must be invoked there
$oFilter->SetInternalParams(array_merge($oFilter->GetInternalParams(), MetaModel::PrepareQueryArguments($this->m_aArgs)));
$oFilter->SetInternalParams(array_merge($oFilter->GetInternalParams(), $this->m_aArgs));
if (count($this->m_aAddedIds) == 0)
{
@@ -1091,8 +1091,8 @@ class DBObjectSet
public function ApplyParameters()
{
$aScalarArgs = MetaModel::PrepareQueryArguments($this->m_aArgs, $this->m_oFilter->GetInternalParams());
$this->m_oFilter->ApplyParameters($aScalarArgs);
$aAllArgs = array_merge($this->m_aArgs, $this->m_oFilter->GetInternalParams());
$this->m_oFilter->ApplyParameters($aAllArgs);
}
}