ajaxのコントローラー用に「catchall」メソッドを作成しています。それは「ajax」と呼ばれます:P
これが現在の様子です
public function ajax($method = null) {
if ( ! $method OR ! request::is_ajax()) {
return false;
}
if (method_exists(array($this, 'searchModel'), $method)) {
echo $this->searchModel->$method();
}
exit;
}
それが明らかでない場合は、ajaxがAjaxリクエストではないと判断した場合は、最初にajaxをベイルアウトしてから$this->searchModel
、ajaxメソッドの引数として渡されたメソッドがあるかどうかを確認してください。
メソッドが見つかった場合は、戻り値をエコーして終了する必要があります。
私の問題はmethod_exists()
、メソッドを見つけることができないことです!私はそれが存在することを知っています...私は特定の存在について知っている(テスト目的で)メソッドをハードコーディングしました。
それは私を少し狂わせてきました、誰かが私が間違っていることを私に言うことができますか?
ありがとう!
PS私はコハナフレームワークを使用していますが、それは問題ではないと思います。
アップデート
私の内部メソッド名をJavaScript(つまりパブリック)に公開することはセキュリティ上の懸念があると思いますか?