2

通常どおりオブジェクトを作成しても、アクション admin で機能するのに、なぜオブジェクトの作成中に検索引数を使用するのでしょうか?

のようなものidを作成しながら検索と一緒に送信する次のコードの使用法がわかりませんmodelobject

$model=new ModelName('search&id='.$_GET['id']);
4

3 に答える 3

4

その引数は、検証のようにシナリオが必要な場所でどのシナリオを使用するかをモデルに指示するモデルシナリオを意味します。ここにドキュメントは言います:

__construct()メソッドpublic void __construct(string $ scenario ='insert')$scenario文字列シナリオ名。このパラメーターの詳細については、CModel::scenarioを参照してください。

そして、ドキュメントに関するCModel::scenarioドキュメント:

シナリオプロパティpublicstringgetScenario()public void setScenario(string $ value)

このモデルが使用されているシナリオを返します。

シナリオは、検証の実行方法と、大規模に割り当てることができる属性に影響します。

'on'オプションが設定されていないか、現在のシナリオ値が含まれている場合、validate()を呼び出すときに検証ルールが実行されます。

また、属性が現在のシナリオの検証ルールに関連付けられている場合は、属性を大量に割り当てることができます。例外は、関連する属性を安全でないとマークし、大量に割り当てることを許可されていない安全でないバリデーターであることに注意してください。

簡単に言うと、新しいモデルを作成し、シナリオを検索していることを伝えます。

于 2012-11-06T07:25:45.217 に答える
2

では、モデル内のSearchメソッドに値を渡したいですか?メソッドを呼び出す場合:

$model = new ModelName::model()->search($_GET['id']);

そしてsearch()、モデルのメソッドで、次のように変更します。

public function search($id){
    ...
}
于 2012-11-06T07:25:40.520 に答える