mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Process query only when needed.
This commit is contained in:
parent
422be67a03
commit
0adc062cfa
2 changed files with 16 additions and 16 deletions
|
@ -318,10 +318,10 @@ class DataSource extends Object {
|
|||
*
|
||||
* @param string $query Query string needing replacements done.
|
||||
* @param array $data Array of data with values that will be inserted in placeholders.
|
||||
* @param string $association Name of association model being replaced
|
||||
* @param Model $Model Model instance
|
||||
* @param string $association Name of association model being replaced.
|
||||
* @param Model $Model Model instance.
|
||||
* @param array $stack
|
||||
* @return string String of query data with placeholders replaced.
|
||||
* @return mixed String of query data with placeholders replaced, or false on failure.
|
||||
*/
|
||||
public function insertQueryData($query, $data, $association, Model $Model, $stack) {
|
||||
$keys = array('{$__cakeID__$}', '{$__cakeForeignKey__$}');
|
||||
|
|
|
@ -1307,20 +1307,20 @@ class DboSource extends DataSource {
|
|||
|
||||
foreach ($resultSet as &$row) {
|
||||
if ($type === 'hasOne' || $type === 'belongsTo' || $type === 'hasMany') {
|
||||
$query = $this->insertQueryData($queryTemplate, $row, $association, $Model, $stack);
|
||||
|
||||
$assocResultSet = array();
|
||||
if ($query !== false) {
|
||||
if (
|
||||
($type === 'hasOne' || $type === 'belongsTo') &&
|
||||
isset($row[$LinkModel->alias], $joined[$Model->alias]) &&
|
||||
in_array($LinkModel->alias, $joined[$Model->alias])
|
||||
) {
|
||||
$joinedData = Hash::filter($row[$LinkModel->alias]);
|
||||
if (!empty($joinedData)) {
|
||||
$assocResultSet[0] = array($LinkModel->alias => $row[$LinkModel->alias]);
|
||||
}
|
||||
} else {
|
||||
|
||||
if (
|
||||
($type === 'hasOne' || $type === 'belongsTo') &&
|
||||
isset($row[$LinkModel->alias], $joined[$Model->alias]) &&
|
||||
in_array($LinkModel->alias, $joined[$Model->alias])
|
||||
) {
|
||||
$joinedData = Hash::filter($row[$LinkModel->alias]);
|
||||
if (!empty($joinedData)) {
|
||||
$assocResultSet[0] = array($LinkModel->alias => $row[$LinkModel->alias]);
|
||||
}
|
||||
} else {
|
||||
$query = $this->insertQueryData($queryTemplate, $row, $association, $Model, $stack);
|
||||
if ($query !== false) {
|
||||
$assocResultSet = $this->fetchAll($query, $Model->cacheQueries);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue