1

誰かが私のために物事を片付けることができるかどうか疑問に思っています。

私のcodeigniterフォーム検証ルールには、次のように設定されたemail_existsというコールバックがあります

->set_rules( 'login', 'Email Address', 'trim|valid_email|required|xss_clean|callback__email_exists' )

同じコントローラーに、次のように呼び出す関数があります

function _email_exists()
{
    // Code here
}

これは完全に機能し、メソッド名の前に _ があるため、URL からメソッドにアクセスできません。完全に機能します。

私はCIのドキュメントを見て、コールバックがプライベートメソッドを使用するように言っています...しかし、メソッド名の前に「プライベート」を置くたびに、まったく機能しません。

このまま放置でいいのか。

乾杯、

4

2 に答える 2

1

検証クラスはコールバックメソッドにアクセスできないため、メソッドをプライベートにすることはできません。

ドキュメントには、コールバックメソッドをパブリックとして宣言する必要があることも示されています。

そのままにしておいてください。

于 2013-03-11T09:08:18.340 に答える
0

CodeIgniters _ プレフィックスはメソッドへのパブリック アクセスを妨げるため、そのままにしておいても問題ありません (つまり、前述のように URL で関数にアクセスすることはできません)。

マニュアルは、_ で始まる関数をプライベートとして定義しているため、この部分で少し混乱する可能性があります(実際の意味は、パブリック アクセスから隠されています)。ただし、関数はまだパブリックとして宣言されている可能性があります (コードにあるように) が、パブリック アクセスからは隠されています。

于 2013-03-11T09:17:28.390 に答える