I'm using cakePHP 2.2.1
The following code works perfectly:
class OptionsController extends AppController {
var $uses = array('Option', 'ShooterEvent', 'ShooterOption');
public function calc($id) {
public function calc($id) {
$paid_entries = $this->ShooterEvent->getPaidEntries($event_id);
$something = 'Default answer';
$this->set(compact('paid_entries', 'something', 'paid_options'));
}
// Made to class above
$something = 'Default answer';
$something = $this->ShooterOption->getSomething(1);
// Made to the ShooterOption class
class ShooterOption extends AppModel {
function getSomething($option_id) {
return 1;
}
}
The error is: Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'getSomething' at line 1$something = 'Default answer';
$something = $this->ShooterOption->getSomething(1);
// Made to the ShooterOption class
class ShooterOption extends AppModel {
function getSomething($option_id) {
return 1;
}
}
The debug trace shows:
Stack Trace
- CORE\Cake\Model\Datasource\DboSource.php line 461 → PDOStatement->execute(array)
try {$query = $this->_connection->prepare($sql, $prepareOptions);$query->setFetchMode(PDO::FETCH_LAZY);if (!$query->execute($params)) {$this->_results = $query;array( (int) 0 => (int) 1 )
- CORE\Cake\Model\Datasource\DboSource.php line 427 → DboSource->_execute(string, array)
$options += array('log' => $this->fullDebug);$t = microtime(true);$this->_result = $this->_execute($sql, $params);'getSomething' array( (int) 0 => (int) 1 )
- CORE\Cake\Model\Datasource\DboSource.php line 671 → DboSource->execute(string, array, array)
if ($cache && ($cached = $this->getQueryCache($sql, $params)) !== false) {return $cached;}if ($result = $this->execute($sql, array(), $params)) {$out = array();'getSomething' array() array( (int) 0 => (int) 1 )
- CORE\Cake\Model\Datasource\DboSource.php line 613 → DboSource->fetchAll(string, array, array)
} else {$cache = true;}return $this->fetchAll($args[0], $args[1], array('cache' => $cache));}'getSomething' array( (int) 0 => (int) 1 ) array( 'cache' => object(AppModel) {} ) - CORE\Cake\Model\Model.php line 784 → DboSource->query(string, array, AppModel)
if ($result !== array('unhandled')) {return $result;}$return = $this->getDataSource()->query($method, $params, $this);return $return;'getSomething' array( (int) 0 => (int) 1 ) object(AppModel) { useDbConfig => 'default' useTable => 'shooter_options' id => false data => array([maximum depth reached]) schemaName => 'shoots' table => 'shooter_options' primaryKey => 'id' validate => array([maximum depth reached]) validationErrors => array([maximum depth reached]) validationDomain => null name => 'ShooterOption' alias => 'ShooterOption' tableToModel => array( [maximum depth reached] ) cacheQueries => false belongsTo => array([maximum depth reached]) hasOne => array([maximum depth reached]) hasMany => array([maximum depth reached]) hasAndBelongsToMany => array([maximum depth reached]) actsAs => null Behaviors => object(BehaviorCollection) {} whitelist => array([maximum depth reached]) cacheSources => true findQueryType => null recursive => (int) 1 order => null virtualFields => array([maximum depth reached]) __backAssociation => array([maximum depth reached]) __backInnerAssociation => array([maximum depth reached]) __backOriginalAssociation => array([maximum depth reached]) __backContainableAssociation => array([maximum depth reached]) findMethods => array( [maximum depth reached] ) tablePrefix => '' } - APP\Controller\OptionsController.php line 199 → Model->__call(string, array)
$paid_options = $this->ShooterOption->find('all');$something = 'Default answer';$something = $this->ShooterOption->getSomething(1);'getSomething' array( (int) 0 => (int) 1 )
- APP\Controller\OptionsController.php line 199 → AppModel->getSomething(integer)
$paid_options = $this->ShooterOption->find('all');$something = 'Default answer';$something = $this->ShooterOption->getSomething(1);(int) 1
It's trying to execute the sql statement "getSomething." It's as if it can't find the function in the Model? Any ideas would be greatly appreciated.
Thanks
--Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com.
To unsubscribe from this group, send email to cake-php+unsubscribe@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.
No comments:
Post a Comment