Enable caching related models

This commit is contained in:
Deon George 2015-10-09 00:29:04 +11:00
parent e8c4f00a8d
commit 1e88be0e21

View File

@ -345,6 +345,7 @@ class Kohana_ORM extends Model implements serializable {
} }
$defaults = array(); $defaults = array();
$defaults['cached'] = FALSE;
foreach ($this->_belongs_to as $alias => $details) foreach ($this->_belongs_to as $alias => $details)
{ {
@ -650,6 +651,10 @@ class Kohana_ORM extends Model implements serializable {
// See: http://mysql.localhost.net.ar/doc/refman/5.1/en/server-session-variables.html#sysvar_sql_auto_is_null // See: http://mysql.localhost.net.ar/doc/refman/5.1/en/server-session-variables.html#sysvar_sql_auto_is_null
if ($val !== NULL) if ($val !== NULL)
{ {
// Enable caching query
if ($this->_belongs_to[$column]['cached'])
$model->cached();
$model->where($col, '=', $val)->find(); $model->where($col, '=', $val)->find();
} }
@ -677,6 +682,10 @@ class Kohana_ORM extends Model implements serializable {
} }
} }
// Enable caching query
if ($this->_has_one[$column]['cached'])
$model->cached();
$model->where($col, '=', $val)->find(); $model->where($col, '=', $val)->find();
return $this->_related[$column] = $model; return $this->_related[$column] = $model;
@ -709,6 +718,10 @@ class Kohana_ORM extends Model implements serializable {
$val = $this->_object[$this->_has_many[$column]['far_key']]; $val = $this->_object[$this->_has_many[$column]['far_key']];
} }
// Enable caching query
if ($this->_has_many[$column]['cached'])
$model->cached();
return $model->where($col, '=', $val); return $model->where($col, '=', $val);
} }
else else
@ -729,6 +742,10 @@ class Kohana_ORM extends Model implements serializable {
$model = $model->where($col, '=', $val); $model = $model->where($col, '=', $val);
} }
// Enable caching query
if ($this->_has_many[$column]['cached'])
$model->cached();
return $model; return $model;
} }
} }