If inside the class ShooterOption class change :
        $this->ShooterOption->getSomething(1);
to:
        $this->getSomething(1);

also on your 
public function calc($id) {
        $paid_entries = $this->ShooterEvent->getPaidEntries($event_id);

Where is $event_id coming from ? should it be just $id ?

Andras Kende
http://www.kende.com


On Dec 4, 2012, at 10:11 AM, glk <g...@kaup.com> wrote:

> Hello all,  thank you in advance for any help you may be able to provide.
> 
> 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) {
>   $paid_entries = $this->ShooterEvent->getPaidEntries($event_id);
>   $paid_options = $this->ShooterOption->find('all');
>     
>   $something =  'Default answer';
> 
>   $this->set(compact('paid_entries', 'something', 'paid_options'));
> }
> 
> 
>  The following change will die horribly:
> 
>   // 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
> 
> 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+unsubscr...@googlegroups.com.
> Visit this group at http://groups.google.com/group/cake-php?hl=en.
>  
>  

-- 
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+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.


Reply via email to