Fix discrepancy in Model::field when Model::id is null

When using ClassRegistry::init for instance
This commit is contained in:
Mischa ter Smitten 2017-06-08 20:22:29 +02:00
parent 77b7ccf3ad
commit ddbdf170e6
2 changed files with 7 additions and 1 deletions

View file

@ -1653,7 +1653,7 @@ class Model extends CakeObject implements CakeEventListener {
* @link http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#model-field * @link http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#model-field
*/ */
public function field($name, $conditions = null, $order = null) { public function field($name, $conditions = null, $order = null) {
if ($conditions === null && $this->id !== false) { if ($conditions === null && !in_array($this->id, [false, null], true)) {
$conditions = array($this->alias . '.' . $this->primaryKey => $this->id); $conditions = array($this->alias . '.' . $this->primaryKey => $this->id);
} }

View file

@ -7041,6 +7041,12 @@ class ModelReadTest extends BaseModelTest {
$result = $TestModel->field('COUNT(*)', true); $result = $TestModel->field('COUNT(*)', true);
$this->assertEquals(4, $result); $this->assertEquals(4, $result);
$TestModel->id = null;
$result = $TestModel->field('user', array(
'user' => 'mariano'
));
$this->assertEquals('mariano', $result);
} }
/** /**