From d2098828c6ff1ef01b8c6958fa57785a6e907ed7 Mon Sep 17 00:00:00 2001 From: Ceeram Date: Wed, 4 Apr 2012 15:00:36 +0200 Subject: [PATCH] Fix fullTablename(), ensure prefix prepending is only skipped when not on position 0 in tablename. Fixes #2750 --- lib/Cake/Model/Datasource/DboSource.php | 2 +- lib/Cake/Test/Case/Model/Datasource/DboSourceTest.php | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/Cake/Model/Datasource/DboSource.php b/lib/Cake/Model/Datasource/DboSource.php index 992dd34a035..5a3635f3fa3 100644 --- a/lib/Cake/Model/Datasource/DboSource.php +++ b/lib/Cake/Model/Datasource/DboSource.php @@ -922,7 +922,7 @@ public function fullTableName($model, $quote = true, $schema = true) { if (is_object($model)) { $schemaName = $model->schemaName; $table = $model->tablePrefix . $model->table; - } elseif (!empty($this->config['prefix']) && strpos($model, $this->config['prefix']) === false) { + } elseif (!empty($this->config['prefix']) && strpos($model, $this->config['prefix']) !== 0) { $table = $this->config['prefix'] . strval($model); } else { $table = strval($model); diff --git a/lib/Cake/Test/Case/Model/Datasource/DboSourceTest.php b/lib/Cake/Test/Case/Model/Datasource/DboSourceTest.php index 2ce01546122..c2cee0e57d1 100644 --- a/lib/Cake/Test/Case/Model/Datasource/DboSourceTest.php +++ b/lib/Cake/Test/Case/Model/Datasource/DboSourceTest.php @@ -746,6 +746,10 @@ public function testFullTablePermutations() { $Article->schemaName = null; $result = $noschema->fullTableName($Article, false, true); $this->assertEquals('articles', $result); + + $this->testDb->config['prefix'] = 't_'; + $result = $this->testDb->fullTableName('post_tag', false, false); + $this->assertEquals('t_post_tag', $result); } /**