Merging fixes and enhancements into trunk

Revision: [1927]
A little refactoring on the findBy<field> and findAllBy<field>.
These should both work on PHP 4 now without an issue.
Change the condition to be built as an array in DboMysql::query().
Still want to refactor the DboSource::conditions() which is note around line 1058 TODO:

git-svn-id: https://svn.cakephp.org/repo/trunk/cake@1928 3807eeeb-6ff5-0310-8944-8be069107fe0
This commit is contained in:
phpnut 2006-02-04 08:13:59 +00:00
parent c2dcc10996
commit cd2d68a6c8
3 changed files with 9 additions and 8 deletions

View file

@ -6,4 +6,4 @@
// +---------------------------------------------------------------------------------------------------+ //
///////////////////////////////////////////////////////////////////////////////////////////////////////////
0.10.8.1926 RC 4
0.10.8.1928 RC 4

View file

@ -518,7 +518,6 @@ class DboSource extends DataSource
foreach ($resultSet as $i => $row)
{
$q = $this->insertQueryData($query, $resultSet, $association, $assocData, $model, $linkModel, $i);
//pr($q);
$fetch = $this->fetchAll($q);
if (!empty($fetch) && is_array($fetch))

View file

@ -149,20 +149,22 @@ class DboMysql extends DboSource
function query ()
{
$args = func_get_args();
if (count($args) == 1)
{
return $this->fetchAll($args[0]);
}
elseif (count($args) > 1 && strpos($args[0], 'findBy') === 0)
elseif (count($args) > 1 && strpos(low($args[0]), 'findby') === 0)
{
$field = Inflector::underscore(str_replace('findBy', '', $args[0]));
$query = '`' . $args[2]->name . '`.`' . $field . '` = ' . $this->value($args[1][0]);
$field = Inflector::underscore(preg_replace('/findBy/i', '', $args[0]));
$query = array($args[2]->name.'.'.$field => $args[1][0]);
return $args[2]->find($query);
}
elseif (count($args) > 1 && strpos($args[0], 'findAllBy') === 0)
elseif (count($args) > 1 && strpos(low($args[0]), 'findallby') === 0)
{
$field = Inflector::underscore(str_replace('findAllBy', '', $args[0]));
$query = '`' . $args[2]->name . '`.`' . $field . '` = ' . $this->value($args[1][0]);
$field = Inflector::underscore(preg_replace('/findAllBy/i', '', $args[0]));
$query = array($args[2]->name.'.'.$field => $args[1][0]);
return $args[2]->findAll($query);
}
}