質問

皆様にお伝えしたくて書き込み、"すべてはキャッチする方法"に私のコントローラーが)。それは"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、その後、メンバーの件数をご確認ください $this->searchModel 見されている場合れたメソッドに渡されたとして、ajaxのメソッドのarguement.

だかの方法でエコーでの返り値が、その後終了します。

私の問題はできませんの method_exists() る方法を探!ただ、それは実際に存在しており...私もハードコードされた(試験目的のための方法を知っている。

で駆動いているから、自分で言うのも何ですが、なぜうになっているが悪いのでしょうか。

よろしく!

P.S.私が使っているのKohanaの枠組みとは思えないのです。

更新

だとお考えに触っ内部メソッド名は、JavaScript(公害のセキュリティ上の懸念事項とな?

役に立ちましたか?

解決

ご利用中の最初の引数 method_exists() している場合をサポートしているコールバック引数なしのコールバック.で受け付けないオブジェクトインスタンスまたはクラス名(string)のための試験静的ます。

してみてください:

if (method_exists($this->searchModel, $method)) {
    echo $this->searchModel->$method();
}

再第二の質問は、ありだと思い、セキュリティ面で心配です。てしまっていない検証の請求であることもありません。私は使用しないで"キャッチオーソリューションまであるといえるでしょう。

他のヒント

行きたいというコードは次のようにコメントしている。

if(method_exists($this->searchModel, $method))
    echo $this->searchModel->$method();

ただし、 るのは悪いことをなすべてのメソッドのsearchModelオブジェクトを世界には、接頭辞は、ajaxの方法は"ajax_'または類似したようにのみ呼び出すことはでき法とその接頭辞:

// given that $method is 'user_login' ...
$realMethod = 'ajax_' . $method;    
if(method_exists($this->searchModel, $realMethod))
    // calls $this->searchModel->ajax_user_login();
    echo $this->searchModel->$realMethod();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top