read() public method

Reads record(s) from the database.
public read ( Model $Model, array $queryData = [], integer $recursive = null ) : mixed
$Model Model A Model object that the query is for.
$queryData array An array of queryData information containing keys similar to Model::find().
$recursive integer Number of levels of association
return mixed boolean false on error/failure. An array of results on success.
 /**
  * testRealQueries method
  *
  * @return void
  */
 public function testRealQueries()
 {
     $this->loadFixtures('Apple', 'Article', 'User', 'Comment', 'Tag', 'Sample', 'ArticlesTag');
     $Apple = ClassRegistry::init('Apple');
     $Article = ClassRegistry::init('Article');
     $result = $this->Dbo->rawQuery('SELECT color, name FROM ' . $this->Dbo->fullTableName('apples'));
     $this->assertTrue(!empty($result));
     $result = $this->Dbo->fetchRow($result);
     $expected = array($this->Dbo->fullTableName('apples', false, false) => array('color' => 'Red 1', 'name' => 'Red Apple 1'));
     $this->assertEquals($expected, $result);
     $result = $this->Dbo->fetchAll('SELECT name FROM ' . $this->Dbo->fullTableName('apples') . ' ORDER BY id');
     $expected = array(array($this->Dbo->fullTableName('apples', false, false) => array('name' => 'Red Apple 1')), array($this->Dbo->fullTableName('apples', false, false) => array('name' => 'Bright Red Apple')), array($this->Dbo->fullTableName('apples', false, false) => array('name' => 'green blue')), array($this->Dbo->fullTableName('apples', false, false) => array('name' => 'Test Name')), array($this->Dbo->fullTableName('apples', false, false) => array('name' => 'Blue Green')), array($this->Dbo->fullTableName('apples', false, false) => array('name' => 'My new apple')), array($this->Dbo->fullTableName('apples', false, false) => array('name' => 'Some odd color')));
     $this->assertEquals($expected, $result);
     $result = $this->Dbo->field($this->Dbo->fullTableName('apples', false, false), 'SELECT color, name FROM ' . $this->Dbo->fullTableName('apples') . ' ORDER BY id');
     $expected = array('color' => 'Red 1', 'name' => 'Red Apple 1');
     $this->assertEquals($expected, $result);
     $Apple->unbindModel(array(), false);
     $result = $this->Dbo->read($Apple, array('fields' => array($Apple->escapeField('name')), 'conditions' => null, 'recursive' => -1));
     $expected = array(array('Apple' => array('name' => 'Red Apple 1')), array('Apple' => array('name' => 'Bright Red Apple')), array('Apple' => array('name' => 'green blue')), array('Apple' => array('name' => 'Test Name')), array('Apple' => array('name' => 'Blue Green')), array('Apple' => array('name' => 'My new apple')), array('Apple' => array('name' => 'Some odd color')));
     $this->assertEquals($expected, $result);
     $result = $this->Dbo->read($Article, array('fields' => array('id', 'user_id', 'title'), 'conditions' => null, 'recursive' => 1));
     $this->assertTrue(Set::matches('/Article[id=1]', $result));
     $this->assertTrue(Set::matches('/Comment[id=1]', $result));
     $this->assertTrue(Set::matches('/Comment[id=2]', $result));
     $this->assertFalse(Set::matches('/Comment[id=10]', $result));
 }
 /**
  * testDistinctWithLimit method
  *
  * @return void
  */
 public function testDistinctWithLimit()
 {
     $this->db->read($this->model, array('fields' => array('DISTINCT SqlserverTestModel.city', 'SqlserverTestModel.country'), 'limit' => 5));
     $result = $this->db->getLastQuery();
     $this->assertRegExp('/^SELECT DISTINCT TOP 5/', $result);
 }
Example #3
0
 /**
  * Returns an array of all result rows for a given SQL query.
  * Returns false if no rows matched.
  *
  * @param string $sql SQL statement
  * @param boolean $cache Enables returning/storing cached query results
  * @return array Array of resultset rows, or false if no rows matched
  */
 function read(&$model, $queryData = array(), $recursive = null)
 {
     $results = parent::read($model, $queryData, $recursive);
     $this->__fieldMappings = array();
     return $results;
 }
 /**
  * testDistinctWithLimit method
  *
  * @access public
  * @return void
  */
 function testDistinctWithLimit()
 {
     $this->db->read($this->model, array('fields' => array('DISTINCT MssqlTestModel.city', 'MssqlTestModel.country'), 'limit' => 5));
     $result = $this->db->getLastQuery();
     $this->assertPattern('/^SELECT DISTINCT TOP 5/', $result);
 }
Example #5
0
 /**
  * Returns an array of all result rows for a given SQL query.
  * Returns false if no rows matched.
  *
  * @param Model $model The model to read from
  * @param array $queryData The query data
  * @param int $recursive How many layers to go.
  * @return array|false Array of resultset rows, or false if no rows matched
  */
 public function read(Model $model, $queryData = array(), $recursive = null)
 {
     $results = parent::read($model, $queryData, $recursive);
     // 2014.09.30 SFICHERA: Commented in order to properly support joined models...
     //$this->_fieldMappings = array();
     return $results;
 }
Example #6
0
 /**
  * Returns an array of all result rows for a given SQL query.
  * Returns false if no rows matched.
  *
  * @param Model $model     The model to read from
  * @param array $queryData The query data
  * @param int   $recursive How many layers to go.
  *
  * @return array|false Array of resultset rows, or false if no rows matched
  */
 public function read(Model $model, $queryData = array(), $recursive = NULL)
 {
     $results = parent::read($model, $queryData, $recursive);
     $this->_fieldMappings = array();
     return $results;
 }