2012-02-20 17 views
0

コントローラとモデルで最も簡単な呼び出しをしようとしていますが、動作しません。CakePHP 2 - モデル関数でSQLエラーが発生するのはなぜですか?

私が手にエラーがある:

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 'ppLongerFunction2' at line 1

コントローラコードは次のとおりです。

<?php 

class UsersController extends AppController{ 
public $uses = array('User'); 

function test(){ 
    $blah = $this->User->find('all'); 
    $u = $this->User->ppLongerFunction2(); 
    $this->set(compact('blah', 'u')); 
} 
} 

とモデルがある:

私はめちゃくちゃにしています
<?php 
class User extends AppModel{ 
public var $name = 'User'; 
var $displayField = 'username'; 

var $useTable = 'users'; 

public function ppLongerFunction2(){ 
    $something = $this->find('all'); 
    return $something; 
} 
} 

スタックトレース:すべての固定

#0 C:\wamp\www\lib\Cake\Model\Datasource\DboSource.php(436): PDOStatement->execute(Array) 
#1 C:\wamp\www\lib\Cake\Model\Datasource\DboSource.php(403): DboSource->_execute('ppLongerFunctio...', Array) 
#2 C:\wamp\www\lib\Cake\Model\Datasource\DboSource.php(647): DboSource->execute('ppLongerFunctio...', Array, Array) 
#3 C:\wamp\www\lib\Cake\Model\Datasource\DboSource.php(589): DboSource->fetchAll('ppLongerFunctio...', Array, Array) 
#4 C:\wamp\www\lib\Cake\Model\Model.php(720): DboSource->query('ppLongerFunctio...', Array, Object(AppModel)) 
#5 C:\wamp\www\app\Controller\UsersController.php(11): Model->__call('ppLongerFunctio...', Array) 
#6 C:\wamp\www\app\Controller\UsersController.php(11): AppModel->ppLongerFunction2() 
#7 [internal function]: UsersController->test() 
#8 C:\wamp\www\lib\Cake\Controller\Controller.php(473): ReflectionMethod->invokeArgs(Object(UsersController), Array) 
#9 C:\wamp\www\lib\Cake\Routing\Dispatcher.php(104): Controller->invokeAction(Object(CakeRequest)) 
#10 C:\wamp\www\lib\Cake\Routing\Dispatcher.php(86): Dispatcher->_invoke(Object(UsersController), Object(CakeRequest), Object(CakeResponse)) 
#11 C:\wamp\www\app\webroot\index.php(96): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse)) 
#12 {main} 

。それはファイル名でした。助けてくれてありがとう:|愚かな

+0

作成しているSQLクエリは何ですか?あなたがまだDebugKitをインストールしていないのであれば、CakePHPプロジェクトのためのものでなければならず、これらすべての情報を簡単に与えることができます - 変数、mysqlクエリー実行... etcなど) – Dave

+0

おそらく主要な問題ではありませんが、あなたがUsersControllerに入っているので、$ useが必要です。 – Dave

+0

私はdebutKitを持っていません、別の方法では、私はあなたにクエリを表示できますか? – mgPePe

答えて

0

あなたのコントローラはモデルのppLongerFunction2()を呼び出そうとしますが、モデルに定義されていないため、SQL関数として渡されます。

私が考えているのは、慣例に従って見逃したことがあり、モデル(User.php)のファイルが見つかりませんでした(たぶんuser.php)。この場合、ケーキは内部的にDBテーブルからモデルを構築しますが、明らかにその関数は含まれません。これが間違っているかどうかは、間違って;のように間違ってエラーが発生するモデルに入力し、エラーが表示されるかどうかを確認することで確認できます。あなたのファイルが使用されていない場合。

関連する問題