4 followers

Class yii\widgets\ActiveForm

継承yii\widgets\ActiveForm » yii\base\Widget » yii\base\Component » yii\base\BaseObject
実装yii\base\Configurable, yii\base\ViewContextInterface
利用可能なバージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/widgets/ActiveForm.php

ActiveForm は、1 つまたは複数のデータモデル用のインタラクティブな HTML フォームを構築するウィジェットです。

ActiveForm の詳細と使用方法については、フォームに関するガイド記事をご覧ください。

パブリックプロパティ

継承されたプロパティを隠す

プロパティ 説明 定義元
$action array|string フォームのアクション URL。 yii\widgets\ActiveForm
$ajaxDataType string サーバーから返されることを期待しているデータの型。 yii\widgets\ActiveForm
$ajaxParam string 検証リクエストが AJAX リクエストであることを示す GET パラメーターの名前。 yii\widgets\ActiveForm
$autoIdPrefix string 自動生成されたウィジェット ID のプレフィックス。 yii\base\Widget
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされているビヘイビアのリスト。 yii\base\Component
$enableAjaxValidation boolean AJAX ベースのデータ検証を有効にするかどうか。 yii\widgets\ActiveForm
$enableClientScript boolean yii.activeForm JavaScript プラグインをフックするかどうか。 yii\widgets\ActiveForm
$enableClientValidation boolean クライアントサイドでのデータ検証を有効にするかどうか。 yii\widgets\ActiveForm
$encodeErrorSummary boolean エラーサマリーでエンコーディングを実行するかどうか。 yii\widgets\ActiveForm
$errorCssClass string 関連付けられた属性に検証エラーがある場合に、フィールドコンテナに追加される CSS クラス。 yii\widgets\ActiveForm
$errorSummaryCssClass string エラーサマリーコンテナのデフォルトの CSS クラス。 yii\widgets\ActiveForm
$fieldClass string field() を呼び出して新しいフィールドを作成するときのデフォルトのフィールドクラス名。 yii\widgets\ActiveForm
$fieldConfig array|Closure field() が新しいフィールドオブジェクトを作成するときに使用するデフォルトの構成。 yii\widgets\ActiveForm
$id string|null ウィジェットの ID。 yii\base\Widget
$method string フォームの送信方法。 yii\widgets\ActiveForm
$options array form タグの HTML 属性(名前と値のペア)。 yii\widgets\ActiveForm
$requiredCssClass string 関連付けられた属性が必須の場合に、フィールドコンテナに追加される CSS クラス。 yii\widgets\ActiveForm
$scrollToError boolean 検証後、最初のエラーにスクロールするかどうか。 yii\widgets\ActiveForm
$scrollToErrorOffset integer 最初のエラーにスクロールするときに追加する必要があるピクセル単位のオフセット。 yii\widgets\ActiveForm
$successCssClass string 関連付けられた属性が正常に検証された場合に、フィールドコンテナに追加される CSS クラス。 yii\widgets\ActiveForm
$validateOnBlur boolean 入力フィールドがフォーカスを失ったときに検証を実行するかどうか。 yii\widgets\ActiveForm
$validateOnChange boolean 入力フィールドの値が変更されたときに検証を実行するかどうか。 yii\widgets\ActiveForm
$validateOnSubmit boolean フォームが送信されたときに検証を実行するかどうか。 yii\widgets\ActiveForm
$validateOnType boolean ユーザーが入力フィールドに入力しているときに検証を実行するかどうか。 yii\widgets\ActiveForm
$validatingCssClass string 関連付けられた属性が検証中の場合に、フィールドコンテナに追加される CSS クラス。 yii\widgets\ActiveForm
$validationDelay integer ユーザーがフィールドに入力し、$validateOnTypetrue に設定されている場合に、検証を遅延させるミリ秒数。 yii\widgets\ActiveForm
$validationStateOn string 検証状態クラスをレンダリングする場所。"container" または "input" のいずれか。 yii\widgets\ActiveForm
$validationUrl array|string|null AJAX ベースの検証を実行するための URL。 yii\widgets\ActiveForm
$view yii\web\View ビューまたはビューファイルをレンダリングするために使用できるビューオブジェクト。 yii\base\Widget
$viewPath string このウィジェットのビューファイルを含むディレクトリ。 yii\base\Widget

パブリックメソッド

継承されたメソッドを隠す

メソッド 説明 定義元
__call() クラスメソッドではない名前付きメソッドを呼び出します。 yii\base\Component
__clone() このメソッドは、既存のオブジェクトをクローニングしてオブジェクトが作成された後に呼び出されます。 yii\base\Component
__construct() コンストラクタ。 yii\base\BaseObject
__get() コンポーネントプロパティの値を返します。 yii\base\Component
__isset() プロパティが設定されているかどうか、つまり、定義されていて null でないかどうかを確認します。 yii\base\Component
__set() コンポーネントプロパティの値を設定します。 yii\base\Component
__unset() コンポーネントプロパティを null に設定します。 yii\base\Component
afterRun() このメソッドは、ウィジェットが実行された直後に呼び出されます。 yii\base\Widget
attachBehavior() ビヘイビアをこのコンポーネントにアタッチします。 yii\base\Component
attachBehaviors() コンポーネントにビヘイビアのリストをアタッチします。 yii\base\Component
beforeRun() このメソッドは、ウィジェットが実行される直前に呼び出されます。 yii\base\Widget
begin() ウィジェットを開始します。 yii\base\Widget
beginField() フォームフィールドを開始します。 yii\widgets\ActiveForm
behaviors() このコンポーネントが動作するビヘイビアのリストを返します。 yii\base\Component
canGetProperty() プロパティが読み取り可能かどうかを示す値を返します。 yii\base\Component
canSetProperty() プロパティが設定可能かどうかを示す値を返します。 yii\base\Component
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
detachBehavior() コンポーネントからビヘイビアをデタッチします。 yii\base\Component
detachBehaviors() コンポーネントからすべてのビヘイビアをデタッチします。 yii\base\Component
end() ウィジェットを終了します。 yii\base\Widget
endField() フォームフィールドを終了します。 yii\widgets\ActiveForm
ensureBehaviors() behaviors() で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。 yii\base\Component
errorSummary() バリデーションエラーのサマリーを生成します。 yii\widgets\ActiveForm
field() フォームフィールドを生成します。 yii\widgets\ActiveForm
getBehavior() 指定された名前のビヘイビアオブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされているすべてのビヘイビアを返します。 yii\base\Component
getId() ウィジェットのIDを返します。 yii\base\Widget
getView() ビューまたはビューファイルのレンダリングに使用できるビューオブジェクトを返します。 yii\base\Widget
getViewPath() このウィジェットのビューファイルが含まれているディレクトリを返します。 yii\base\Widget
hasEventHandlers() 指定された名前のイベントにハンドラがアタッチされているかどうかを示す値を返します。 yii\base\Component
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\Component
hasProperty() このコンポーネントに対してプロパティが定義されているかどうかを示す値を返します。 yii\base\Component
init() ウィジェットを初期化します。 yii\widgets\ActiveForm
off() このコンポーネントから既存のイベントハンドラをデタッチします。 yii\base\Component
on() イベントにイベントハンドラをアタッチします。 yii\base\Component
registerClientScript() 必要なJavaScriptコードを登録します。 yii\widgets\ActiveForm
render() ビューをレンダリングします。 yii\base\Widget
renderFile() ビューファイルをレンダリングします。 yii\base\Widget
run() ウィジェットを実行します。 yii\widgets\ActiveForm
setId() ウィジェットのIDを設定します。 yii\base\Widget
setView() このウィジェットで使用するビューオブジェクトを設定します。 yii\base\Widget
trigger() イベントをトリガーします。 yii\base\Component
validate() 1つまたは複数のモデルをバリデーションし、属性IDでインデックス付けされたエラーメッセージの配列を返します。 yii\widgets\ActiveForm
validateMultiple() モデルインスタンスの配列をバリデーションし、属性IDでインデックス付けされたエラーメッセージの配列を返します。 yii\widgets\ActiveForm
widget() ウィジェットインスタンスを作成して実行します。 yii\base\Widget

保護されたメソッド

継承されたメソッドを隠す

メソッド 説明 定義元
getClientOptions() フォームJSウィジェットのオプションを返します。 yii\widgets\ActiveForm

イベント

継承されたイベントを非表示にする

イベント 説明 定義元
EVENT_AFTER_RUN yii\base\WidgetEvent ウィジェットの実行直後に発生するイベント。(バージョン2.0.11以降で使用可能) yii\base\Widget
EVENT_BEFORE_RUN yii\base\WidgetEvent ウィジェットの実行直前に発生するイベント。(バージョン2.0.11以降で使用可能) yii\base\Widget
EVENT_INIT yii\base\Event init() を介してウィジェットが初期化されたときにトリガーされるイベント。(バージョン2.0.11以降で使用可能) yii\base\Widget

定数

継承された定数を非表示にする

定数 説明 定義元
VALIDATION_STATE_ON_CONTAINER 'container' コンテナタグにバリデーション状態クラスを追加します yii\widgets\ActiveForm
VALIDATION_STATE_ON_INPUT 'input' 入力タグにバリデーション状態クラスを追加します yii\widgets\ActiveForm

プロパティの詳細

継承されたプロパティを隠す

$action public property

フォームのアクションURL。このパラメータは、yii\helpers\Url::to() によって処理されます。

このフォームのHTTPメソッドを指定するには、$method も参照してください。

public array|string $action ''
$ajaxDataType public property

サーバーから返されることを期待しているデータの型。

public string $ajaxDataType 'json'
$ajaxParam public property

検証リクエストが AJAX リクエストであることを示す GET パラメーターの名前。

public string $ajaxParam 'ajax'
$enableAjaxValidation public property

AJAXベースのデータ検証を有効にするかどうか。yii\widgets\ActiveField::$enableAjaxValidation が設定されている場合、その値がその入力フィールドで優先されます。

$enableClientScript public property

yii.activeForm JavaScriptプラグインをフックアップするかどうか。クライアント側の検証やAJAX検証をサポートする場合、または yii.activeForm プラグインを利用する場合は、このプロパティを true に設定する必要があります。これが false の場合、フォームはJavaScriptを生成しません。

registerClientScript() も参照してください。

$enableClientValidation public property

クライアント側のデータ検証を有効にするかどうか。yii\widgets\ActiveField::$enableClientValidation が設定されている場合、その値がその入力フィールドで優先されます。

$encodeErrorSummary public property

エラーサマリーでエンコーディングを実行するかどうか。

$errorCssClass public property

関連付けられた属性に検証エラーがある場合に、フィールドコンテナに追加される CSS クラス。

public string $errorCssClass 'has-error'
$errorSummaryCssClass public property

エラーサマリーコンテナのデフォルトの CSS クラス。

errorSummary() も参照してください。

public string $errorSummaryCssClass 'error-summary'
$fieldClass public property

field() を呼び出して新しいフィールドを作成するときのデフォルトのフィールドクラス名。

$fieldConfig も参照してください。

public string $fieldClass 'yii\widgets\ActiveField'
$fieldConfig public property

field() で新しいフィールドオブジェクトを作成する際に使用されるデフォルト設定です。これは設定配列または設定配列を返す匿名関数のいずれかです。後者の場合、シグネチャは以下のようになります。

function ($model, $attribute)

このプロパティの値は、field() に渡される $options パラメータと再帰的にマージされます。

$fieldClass も参照してください。

$method public プロパティ

フォームの送信メソッド。これは post または get のいずれかである必要があります。デフォルトは post です。

これを get に設定すると、各リクエストで URL パラメータが繰り返されることがあります。これは、$action のデフォルト値が現在のリクエスト URL に設定されており、送信ごとに既存のパラメータを置き換えるのではなく、新しいパラメータが追加されるためです。これを避けるために、$action を明示的に設定することができます。

$form = ActiveForm::begin([
    'method' => 'get',
    'action' => ['controller/action'],
]);
public string $method 'post'
$options public プロパティ

form タグの HTML 属性(名前と値のペア)。

属性がどのようにレンダリングされるかの詳細については、yii\helpers\Html::renderTagAttributes() も参照してください。

public array $options = []
$requiredCssClass public プロパティ

関連付けられた属性が必須の場合に、フィールドコンテナに追加される CSS クラス。

public string $requiredCssClass 'required'
$scrollToError public プロパティ (バージョン 2.0.6 から利用可能)

検証後、最初のエラーにスクロールするかどうか。

public boolean $scrollToError true
$scrollToErrorOffset public プロパティ (バージョン 2.0.11 から利用可能)

最初のエラーにスクロールするときに追加する必要があるピクセル単位のオフセット。

$successCssClass public プロパティ

関連付けられた属性が正常に検証された場合に、フィールドコンテナに追加される CSS クラス。

public string $successCssClass 'has-success'
$validateOnBlur public プロパティ

入力フィールドがフォーカスを失ったときに検証を実行するかどうか。yii\widgets\ActiveField::$validateOnBlur が設定されている場合、その値がその入力フィールドで優先されます。

public boolean $validateOnBlur true
$validateOnChange public プロパティ

入力フィールドの値が変更されたときに検証を実行するかどうか。yii\widgets\ActiveField::$validateOnChange が設定されている場合、その値がその入力フィールドで優先されます。

public boolean $validateOnChange true
$validateOnSubmit public プロパティ

フォームが送信されたときに検証を実行するかどうか。

public boolean $validateOnSubmit true
$validateOnType public プロパティ

ユーザーが入力フィールドに入力している間に検証を実行するかどうか。yii\widgets\ActiveField::$validateOnType が設定されている場合、その値がその入力フィールドで優先されます。

$validationDelay も参照してください。

public boolean $validateOnType false
$validatingCssClass public プロパティ

関連付けられた属性が検証中の場合に、フィールドコンテナに追加される CSS クラス。

public string $validatingCssClass 'validating'
$validationDelay パブリックプロパティ

ユーザーがフィールドに入力したときに検証を遅延させるミリ秒数。 $validateOnTypetrue に設定されている場合に有効です。yii\widgets\ActiveField::$validationDelay が設定されている場合、その入力フィールドではその値が優先されます。

$validationStateOn パブリックプロパティ (バージョン 2.0.14 以降で利用可能)

検証状態のクラスをレンダリングする場所。"container" または "input" を指定できます。デフォルトは "container" です。

public string $validationStateOn self::VALIDATION_STATE_ON_CONTAINER
$validationUrl パブリックプロパティ

AJAXベースの検証を実行するためのURL。このプロパティは yii\helpers\Url::to() によって処理されます。このプロパティの設定方法の詳細については、yii\helpers\Url::to() を参照してください。このプロパティが設定されていない場合、フォームの action 属性の値が使用されます。

メソッドの詳細

継承されたメソッドを隠す

__call() パブリックメソッド

定義元: yii\base\Component::__call()

クラスメソッドではない名前付きメソッドを呼び出します。

このメソッドは、アタッチされたビヘイビアが指定された名前のメソッドを持っているかどうかを確認し、もしあればそれを実行します。

このメソッドは、不明なメソッドが呼び出されたときに暗黙的に呼び出されるPHPのマジックメソッドであるため、直接呼び出さないでください。

public mixed __call ( $name, $params )
$name string

メソッド名

$params array

メソッドのパラメータ

return mixed

メソッドの戻り値

throws yii\base\UnknownMethodException

不明なメソッドを呼び出した場合

                public function __call($name, $params)
{
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $object) {
        if ($object->hasMethod($name)) {
            return call_user_func_array([$object, $name], $params);
        }
    }
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            
__clone() パブリックメソッド

定義元: yii\base\Component::__clone()

このメソッドは、既存のオブジェクトをクローニングしてオブジェクトが作成された後に呼び出されます。

古いオブジェクトにアタッチされているため、すべてのビヘイビアを削除します。

public void __clone ( )

                public function __clone()
{
    $this->_events = [];
    $this->_eventWildcards = [];
    $this->_behaviors = null;
}

            
__construct() パブリックメソッド

定義元: yii\base\BaseObject::__construct()

コンストラクタ。

デフォルトの実装では、次の2つのことを行います。

  • 与えられた設定 $config でオブジェクトを初期化します。
  • init() を呼び出します。

子クラスでこのメソッドをオーバーライドする場合は、以下をお勧めします。

  • コンストラクタの最後のパラメータは、ここでの $config のように設定配列にします。
  • コンストラクタの最後に親の実装を呼び出します。
public void __construct ( $config = [] )
$config array

オブジェクトのプロパティを初期化するために使用される名前と値のペア

                public function __construct($config = [])
{
    if (!empty($config)) {
        Yii::configure($this, $config);
    }
    $this->init();
}

            
__get() パブリックメソッド

定義元: yii\base\Component::__get()

コンポーネントプロパティの値を返します。

このメソッドは、次の順序で確認し、それに応じて動作します。

  • ゲッターで定義されたプロパティ:ゲッターの結果を返します
  • ビヘイビアのプロパティ:ビヘイビアのプロパティ値を返します

このメソッドは、$value = $component->property; を実行したときに暗黙的に呼び出されるPHPのマジックメソッドであるため、直接呼び出さないでください。

__set() も参照してください。

public mixed __get ( $name )
$name string

プロパティ名

return mixed

プロパティ値またはビヘイビアのプロパティの値

throws yii\base\UnknownPropertyException

プロパティが定義されていない場合

throws yii\base\InvalidCallException

プロパティが書き込み専用の場合。

                public function __get($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        // read property, e.g. getName()
        return $this->$getter();
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canGetProperty($name)) {
            return $behavior->$name;
        }
    }
    if (method_exists($this, 'set' . $name)) {
        throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}

            
__isset() パブリックメソッド

定義元: yii\base\Component::__isset()

プロパティが設定されているかどうか、つまり、定義されていて null でないかどうかを確認します。

このメソッドは、次の順序で確認し、それに応じて動作します。

  • セッターで定義されたプロパティ:プロパティが設定されているかどうかを返します
  • ビヘイビアのプロパティ:プロパティが設定されているかどうかを返します
  • 存在しないプロパティの場合は false を返します

このメソッドは、isset($component->property) を実行したときに暗黙的に呼び出されるPHPのマジックメソッドであるため、直接呼び出さないでください。

https://www.php.net/manual/en/function.isset.php も参照してください。

public boolean __isset ( $name )
$name string

プロパティ名またはイベント名

return boolean

指定された名前のプロパティが設定されているかどうか

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canGetProperty($name)) {
            return $behavior->$name !== null;
        }
    }
    return false;
}

            
__set() パブリックメソッド

定義元: yii\base\Component::__set()

コンポーネントプロパティの値を設定します。

このメソッドは、次の順序で確認し、それに応じて動作します。

  • セッターで定義されたプロパティ:プロパティ値を設定します
  • "on xyz" という形式のイベント:イベント "xyz" にハンドラをアタッチします
  • "as xyz" という形式のビヘイビア:"xyz" という名前のビヘイビアをアタッチします
  • ビヘイビアのプロパティ:ビヘイビアのプロパティ値を設定します

このメソッドは、$component->property = $value; を実行したときに暗黙的に呼び出されるPHPのマジックメソッドであるため、直接呼び出さないでください。

__get() も参照してください。

public void __set ( $name, $value )
$name string

プロパティ名またはイベント名

$value mixed

プロパティ値

throws yii\base\UnknownPropertyException

プロパティが定義されていない場合

throws yii\base\InvalidCallException

プロパティが読み取り専用の場合。

                public function __set($name, $value)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        // set property
        $this->$setter($value);
        return;
    } elseif (strncmp($name, 'on ', 3) === 0) {
        // on event: attach event handler
        $this->on(trim(substr($name, 3)), $value);
        return;
    } elseif (strncmp($name, 'as ', 3) === 0) {
        // as behavior: attach behavior
        $name = trim(substr($name, 3));
        $this->attachBehavior($name, $value instanceof Behavior ? $value : Yii::createObject($value));
        return;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canSetProperty($name)) {
            $behavior->$name = $value;
            return;
        }
    }
    if (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
}

            
__unset() パブリックメソッド

定義元: yii\base\Component::__unset()

コンポーネントプロパティを null に設定します。

このメソッドは、次の順序で確認し、それに応じて動作します。

  • セッターで定義されたプロパティ:プロパティ値を null に設定します
  • ビヘイビアのプロパティ:プロパティ値を null に設定します

このメソッドは、unset($component->property) を実行したときに暗黙的に呼び出されるPHPのマジックメソッドであるため、直接呼び出さないでください。

参考: https://www.php.net/manual/en/function.unset.php

public void __unset ( $name )
$name string

プロパティ名

throws yii\base\InvalidCallException

プロパティが読み取り専用の場合。

                public function __unset($name)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter(null);
        return;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canSetProperty($name)) {
            $behavior->$name = null;
            return;
        }
    }
    throw new InvalidCallException('Unsetting an unknown or read-only property: ' . get_class($this) . '::' . $name);
}

            
afterRun() public メソッド (バージョン 2.0.11 から利用可能)

定義元: yii\base\Widget::afterRun()

このメソッドは、ウィジェットが実行された直後に呼び出されます。

このメソッドは EVENT_AFTER_RUN イベントをトリガーします。メソッドの戻り値はウィジェットの戻り値として使用されます。

このメソッドをオーバーライドする場合、あなたのコードは次のようになるはずです。

public function afterRun($result)
{
    $result = parent::afterRun($result);
    // your custom code here
    return $result;
}
public mixed afterRun ( $result )
$result mixed

ウィジェットの戻り値。

return mixed

処理されたウィジェットの結果。

                public function afterRun($result)
{
    $event = new WidgetEvent();
    $event->result = $result;
    $this->trigger(self::EVENT_AFTER_RUN, $event);
    return $event->result;
}

            
attachBehavior() public メソッド

定義元: yii\base\Component::attachBehavior()

ビヘイビアをこのコンポーネントにアタッチします。

このメソッドは与えられた構成に基づいてビヘイビアオブジェクトを作成します。その後、yii\base\Behavior::attach() メソッドを呼び出すことによって、ビヘイビアオブジェクトはこのコンポーネントにアタッチされます。

参考: detachBehavior()

public yii\base\Behavior attachBehavior ( $name, $behavior )
$name string

ビヘイビアの名前。

$behavior string|array|yii\base\Behavior

ビヘイビアの設定。これは次のいずれかです。

  • yii\base\Behavior オブジェクト
  • ビヘイビアクラスを指定する文字列
  • Yii::createObject() に渡してビヘイビアオブジェクトを作成するオブジェクト設定配列。
return yii\base\Behavior

ビヘイビアオブジェクト

                public function attachBehavior($name, $behavior)
{
    $this->ensureBehaviors();
    return $this->attachBehaviorInternal($name, $behavior);
}

            
attachBehaviors() public メソッド

定義元: yii\base\Component::attachBehaviors()

コンポーネントにビヘイビアのリストをアタッチします。

各ビヘイビアは名前でインデックス付けされており、yii\base\Behavior オブジェクト、ビヘイビアクラスを指定する文字列、またはビヘイビアを作成するための設定配列である必要があります。

参考: attachBehavior()

public void attachBehaviors ( $behaviors )
$behaviors array

コンポーネントにアタッチするビヘイビアのリスト

                public function attachBehaviors($behaviors)
{
    $this->ensureBehaviors();
    foreach ($behaviors as $name => $behavior) {
        $this->attachBehaviorInternal($name, $behavior);
    }
}

            
beforeRun() public メソッド (バージョン 2.0.11 から利用可能)

定義元: yii\base\Widget::beforeRun()

このメソッドは、ウィジェットが実行される直前に呼び出されます。

このメソッドは EVENT_BEFORE_RUN イベントをトリガーします。メソッドの戻り値は、ウィジェットが実行を継続するかどうかを決定します。

このメソッドをオーバーライドするときは、次のように親の実装を呼び出すようにしてください。

public function beforeRun()
{
    if (!parent::beforeRun()) {
        return false;
    }

    // your custom code here

    return true; // or false to not run the widget
}
public boolean beforeRun ( )
return boolean

ウィジェットが実行を継続する必要があるかどうか。

                public function beforeRun()
{
    $event = new WidgetEvent();
    $this->trigger(self::EVENT_BEFORE_RUN, $event);
    return $event->isValid;
}

            
begin() public static メソッド

定義元: yii\base\Widget::begin()

ウィジェットを開始します。

このメソッドは、呼び出し元のクラスのインスタンスを作成します。作成されたインスタンスに構成が適用されます。一致する end() 呼び出しが後で呼び出される必要があります。一部のウィジェットが出力バッファリングを使用している可能性があるため、出力バッファのネストの破損を回避するために、end() 呼び出しは同じビューで行う必要があります。

参考: end()

public static static begin ( $config = [] )
$config array

オブジェクトのプロパティを初期化するために使用される名前と値のペア

return yii\base\Widget

新しく作成されたウィジェットインスタンス

                public static function begin($config = [])
{
    $config['class'] = get_called_class();
    /* @var $widget Widget */
    $widget = Yii::createObject($config);
    self::$stack[] = $widget;
    return $widget;
}

            
beginField() public メソッド

フォームフィールドを開始します。

このメソッドは新しいフォームフィールドを作成し、その開始タグを返します。後で endField() を呼び出す必要があります。

参考:

public string beginField ( $model, $attribute, $options = [] )
$model yii\base\Model

データモデル。

$attribute string

属性名または式。yii\helpers\Html::getAttributeName() で属性式の形式について参照してください。

$options array

フィールドオブジェクトの追加構成。

return string

開始タグ。

                public function beginField($model, $attribute, $options = [])
{
    $field = $this->field($model, $attribute, $options);
    $this->_fields[] = $field;
    return $field->begin();
}

            
behaviors() public メソッド

定義元: yii\base\Component::behaviors()

このコンポーネントが動作するビヘイビアのリストを返します。

子クラスは、動作させたいビヘイビアを指定するためにこのメソッドをオーバーライドできます。

このメソッドの戻り値は、ビヘイビア名でインデックス付けされたビヘイビアオブジェクトまたは構成の配列である必要があります。ビヘイビア構成は、ビヘイビアクラスを指定する文字列または次の構造の配列のいずれかになります。

'behaviorName' => [
    'class' => 'BehaviorClass',
    'property1' => 'value1',
    'property2' => 'value2',
]

ビヘイビアクラスは yii\base\Behavior を継承する必要があることに注意してください。ビヘイビアは、名前を使用するか、匿名で使用してアタッチできます。名前が配列キーとして使用されている場合、この名前を使用して、後で getBehavior() を使用してビヘイビアを取得したり、detachBehavior() を使用してデタッチしたりできます。匿名ビヘイビアは、取得またはデタッチできません。

このメソッドで宣言されたビヘイビアは、自動的に (オンデマンドで) コンポーネントにアタッチされます。

public array behaviors ( )
return array

ビヘイビア構成。

                public function behaviors()
{
    return [];
}

            
canGetProperty() public メソッド

定義元: yii\base\Component::canGetProperty()

プロパティが読み取り可能かどうかを示す値を返します。

プロパティは、以下の場合に読み取り可能です。

  • クラスが、指定された名前に関連付けられたゲッターメソッドを持っている場合 (この場合、プロパティ名は大文字と小文字が区別されません)。
  • クラスが、指定された名前のメンバー変数を持っている場合 ($checkVars が true の場合)。
  • アタッチされたビヘイビアが、指定された名前の読み取り可能なプロパティを持っている場合 ($checkBehaviors が true の場合)。

参考: canSetProperty()

public boolean canGetProperty ( $name, $checkVars true, $checkBehaviors true )
$name string

プロパティ名

$checkVars boolean

メンバー変数をプロパティとして扱うかどうか

$checkBehaviors boolean

ビヘイビアのプロパティをこのコンポーネントのプロパティとして扱うかどうか

return boolean

プロパティが読み取り可能かどうか

                public function canGetProperty($name, $checkVars = true, $checkBehaviors = true)
{
    if (method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->canGetProperty($name, $checkVars)) {
                return true;
            }
        }
    }
    return false;
}

            
canSetProperty() public メソッド

定義元: yii\base\Component::canSetProperty()

プロパティが設定可能かどうかを示す値を返します。

プロパティは、以下の場合に書き込み可能です。

  • クラスが指定された名前に関連付けられたセッターメソッドを持っている場合 (この場合、プロパティ名は大小文字を区別しません)。
  • クラスが、指定された名前のメンバー変数を持っている場合 ($checkVars が true の場合)。
  • アタッチされたビヘイビアが、指定された名前の書き込み可能なプロパティを持っている場合 ($checkBehaviors が true の場合)。

参照: canGetProperty().

public boolean canSetProperty ( $name, $checkVars true, $checkBehaviors true )
$name string

プロパティ名

$checkVars boolean

メンバー変数をプロパティとして扱うかどうか

$checkBehaviors boolean

ビヘイビアのプロパティをこのコンポーネントのプロパティとして扱うかどうか

return boolean

プロパティが書き込み可能かどうか

                public function canSetProperty($name, $checkVars = true, $checkBehaviors = true)
{
    if (method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->canSetProperty($name, $checkVars)) {
                return true;
            }
        }
    }
    return false;
}

            
className() public static メソッド
2.0.14 から非推奨。PHP >= 5.5 では、代わりに ::class を使用してください。

定義元: yii\base\BaseObject::className()

このクラスの完全修飾名を返します。

public static string className ( )
return string

このクラスの完全修飾名。

                public static function className()
{
    return get_called_class();
}

            
detachBehavior() public メソッド

定義元: yii\base\Component::detachBehavior()

コンポーネントからビヘイビアをデタッチします。

ビヘイビアの yii\base\Behavior::detach() メソッドが呼び出されます。

public yii\base\Behavior|null detachBehavior ( $name )
$name string

ビヘイビアの名前。

return yii\base\Behavior|null

デタッチされたビヘイビア。ビヘイビアが存在しない場合は Null。

                public function detachBehavior($name)
{
    $this->ensureBehaviors();
    if (isset($this->_behaviors[$name])) {
        $behavior = $this->_behaviors[$name];
        unset($this->_behaviors[$name]);
        $behavior->detach();
        return $behavior;
    }
    return null;
}

            
detachBehaviors() public メソッド

定義元: yii\base\Component::detachBehaviors()

コンポーネントからすべてのビヘイビアをデタッチします。

public void detachBehaviors ( )

                public function detachBehaviors()
{
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $name => $behavior) {
        $this->detachBehavior($name);
    }
}

            
end() public static メソッド

定義元: yii\base\Widget::end()

ウィジェットを終了します。

ウィジェットのレンダリング結果が直接出力されることに注意してください。

参照: begin().

public static static end ( )
return yii\base\Widget

終了したウィジェットのインスタンス。

throws yii\base\InvalidCallException

begin()end() の呼び出しが正しくネストされていない場合

                public static function end()
{
    if (!empty(self::$stack)) {
        $widget = array_pop(self::$stack);
        $calledClass = get_called_class();
        if (Yii::$container->has($calledClass) && isset(Yii::$container->getDefinitions()[$calledClass]['class'])) {
            $calledClass = Yii::$container->getDefinitions()[$calledClass]['class'];
        }
        if (get_class($widget) === $calledClass) {
            /* @var $widget Widget */
            if ($widget->beforeRun()) {
                $result = $widget->run();
                $result = $widget->afterRun($result);
                echo $result;
            }
            return $widget;
        }
        throw new InvalidCallException('Expecting end() of ' . get_class($widget) . ', found ' . get_called_class());
    }
    throw new InvalidCallException('Unexpected ' . get_called_class() . '::end() call. A matching begin() is not found.');
}

            
endField() public メソッド

フォームフィールドを終了します。

このメソッドは、beginField() によって開始されたアクティブフォームフィールドの終了タグを返します。

public string endField ( )
return string

フォームフィールドの終了タグ。

throws yii\base\InvalidCallException

このメソッドが、先に beginField() を呼び出さずに呼び出された場合。

                public function endField()
{
    $field = array_pop($this->_fields);
    if ($field instanceof ActiveField) {
        return $field->end();
    }
    throw new InvalidCallException('Mismatching endField() call.');
}

            
ensureBehaviors() public メソッド

定義元: yii\base\Component::ensureBehaviors()

behaviors() で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。

public void ensureBehaviors ( )

                public function ensureBehaviors()
{
    if ($this->_behaviors === null) {
        $this->_behaviors = [];
        foreach ($this->behaviors() as $name => $behavior) {
            $this->attachBehaviorInternal($name, $behavior);
        }
    }
}

            
errorSummary() public メソッド

バリデーションエラーのサマリーを生成します。

検証エラーがない場合でも、空のエラー概要マークアップが生成されますが、非表示になります。

参照: $errorSummaryCssClass.

public string errorSummary ( $models, $options = [] )
$models yii\base\Model|yii\base\Model[]

このフォームに関連付けられたモデル。

$options array

名前と値のペアによるタグオプション。以下のオプションは特別に処理されます。

  • header: string、エラー概要のヘッダーHTML。設定されていない場合は、デフォルトのプロンプト文字列が使用されます。
  • footer: string、エラー概要のフッターHTML。

残りのオプションは、コンテナタグの属性としてレンダリングされます。値は yii\helpers\Html::encode() を使用してHTMLエンコードされます。値が null の場合、対応する属性はレンダリングされません。

return string

生成されたエラー概要。

                public function errorSummary($models, $options = [])
{
    Html::addCssClass($options, $this->errorSummaryCssClass);
    $options['encode'] = $this->encodeErrorSummary;
    return Html::errorSummary($models, $options);
}

            
field() public メソッド

フォームフィールドを生成します。

フォームフィールドは、モデルと属性に関連付けられています。ラベル、入力、およびエラーメッセージを含み、それらを使用してエンドユーザーと対話し、属性の入力を収集します。

$fieldConfig も参照してください。

public yii\widgets\ActiveField field ( $model, $attribute, $options = [] )
$model yii\base\Model

データモデル。

$attribute string

属性名または式。yii\helpers\Html::getAttributeName() で属性式の形式について参照してください。

$options array

フィールドオブジェクトの追加設定。これらは、yii\widgets\ActiveField のプロパティ、または $fieldClass の値に応じてサブクラスのプロパティです。

return yii\widgets\ActiveField

作成された ActiveField オブジェクト。

                public function field($model, $attribute, $options = [])
{
    $config = $this->fieldConfig;
    if ($config instanceof \Closure) {
        $config = call_user_func($config, $model, $attribute);
    }
    if (!isset($config['class'])) {
        $config['class'] = $this->fieldClass;
    }
    return Yii::createObject(ArrayHelper::merge($config, $options, [
        'model' => $model,
        'attribute' => $attribute,
        'form' => $this,
    ]));
}

            
getBehavior() public メソッド

定義元: yii\base\Component::getBehavior()

指定された名前のビヘイビアオブジェクトを返します。

public yii\base\Behavior|null getBehavior ( $name )
$name string

ビヘイビア名

return yii\base\Behavior|null

ビヘイビアオブジェクト。ビヘイビアが存在しない場合は null

                public function getBehavior($name)
{
    $this->ensureBehaviors();
    return isset($this->_behaviors[$name]) ? $this->_behaviors[$name] : null;
}

            
getBehaviors() パブリックメソッド

定義場所: yii\base\Component::getBehaviors()

このコンポーネントにアタッチされているすべてのビヘイビアを返します。

public yii\base\Behavior[] getBehaviors ( )
return yii\base\Behavior[]

このコンポーネントにアタッチされたビヘイビアのリスト

                public function getBehaviors()
{
    $this->ensureBehaviors();
    return $this->_behaviors;
}

            
getClientOptions() プロテクトメソッド

フォームJSウィジェットのオプションを返します。

protected array getClientOptions ( )
return array

オプション

                protected function getClientOptions()
{
    $options = [
        'encodeErrorSummary' => $this->encodeErrorSummary,
        'errorSummary' => '.' . implode('.', preg_split('/\s+/', $this->errorSummaryCssClass, -1, PREG_SPLIT_NO_EMPTY)),
        'validateOnSubmit' => $this->validateOnSubmit,
        'errorCssClass' => $this->errorCssClass,
        'successCssClass' => $this->successCssClass,
        'validatingCssClass' => $this->validatingCssClass,
        'ajaxParam' => $this->ajaxParam,
        'ajaxDataType' => $this->ajaxDataType,
        'scrollToError' => $this->scrollToError,
        'scrollToErrorOffset' => $this->scrollToErrorOffset,
        'validationStateOn' => $this->validationStateOn,
    ];
    if ($this->validationUrl !== null) {
        $options['validationUrl'] = Url::to($this->validationUrl);
    }
    // only get the options that are different from the default ones (set in yii.activeForm.js)
    return array_diff_assoc($options, [
        'encodeErrorSummary' => true,
        'errorSummary' => '.error-summary',
        'validateOnSubmit' => true,
        'errorCssClass' => 'has-error',
        'successCssClass' => 'has-success',
        'validatingCssClass' => 'validating',
        'ajaxParam' => 'ajax',
        'ajaxDataType' => 'json',
        'scrollToError' => true,
        'scrollToErrorOffset' => 0,
        'validationStateOn' => self::VALIDATION_STATE_ON_CONTAINER,
    ]);
}

            
getId() パブリックメソッド

定義場所: yii\base\Widget::getId()

ウィジェットのIDを返します。

public string|null getId ( $autoGenerate true )
$autoGenerate boolean

事前に設定されていない場合にIDを生成するかどうか

return string|null

ウィジェットの ID。

                public function getId($autoGenerate = true)
{
    if ($autoGenerate && $this->_id === null) {
        $this->_id = static::$autoIdPrefix . static::$counter++;
    }
    return $this->_id;
}

            
getView() パブリックメソッド

定義場所: yii\base\Widget::getView()

ビューまたはビューファイルのレンダリングに使用できるビューオブジェクトを返します。

render() および renderFile() メソッドは、実際のビューのレンダリングを実装するために、このビューオブジェクトを使用します。設定されていない場合は、デフォルトで「view」アプリケーションコンポーネントになります。

public yii\web\View getView ( )
return yii\web\View

ビューまたはビューファイルをレンダリングするために使用できるビューオブジェクト。

                public function getView()
{
    if ($this->_view === null) {
        $this->_view = Yii::$app->getView();
    }
    return $this->_view;
}

            
getViewPath() パブリックメソッド

定義場所: yii\base\Widget::getViewPath()

このウィジェットのビューファイルが含まれているディレクトリを返します。

デフォルトの実装では、ウィジェットクラスファイルを含むディレクトリの下にある「views」サブディレクトリを返します。

public string getViewPath ( )
return string

このウィジェットのビューファイルを含むディレクトリ。

                public function getViewPath()
{
    $class = new ReflectionClass($this);
    return dirname($class->getFileName()) . DIRECTORY_SEPARATOR . 'views';
}

            
hasEventHandlers() パブリックメソッド

定義場所: yii\base\Component::hasEventHandlers()

指定された名前のイベントにハンドラがアタッチされているかどうかを示す値を返します。

public boolean hasEventHandlers ( $name )
$name string

イベント名

return boolean

イベントにアタッチされたハンドラがあるかどうか

                public function hasEventHandlers($name)
{
    $this->ensureBehaviors();
    if (!empty($this->_events[$name])) {
        return true;
    }
    foreach ($this->_eventWildcards as $wildcard => $handlers) {
        if (!empty($handlers) && StringHelper::matchWildcard($wildcard, $name)) {
            return true;
        }
    }
    return Event::hasHandlers($this, $name);
}

            
hasMethod() パブリックメソッド

定義場所: yii\base\Component::hasMethod()

メソッドが定義されているかどうかを示す値を返します。

メソッドは次の場合に定義されます。

  • クラスが指定された名前のメソッドを持つ場合
  • アタッチされたビヘイビアが指定された名前のメソッドを持つ場合($checkBehaviorsがtrueの場合)。
public boolean hasMethod ( $name, $checkBehaviors true )
$name string

プロパティ名

$checkBehaviors boolean

ビヘイビアのメソッドをこのコンポーネントのメソッドとして扱うかどうか

return boolean

メソッドが定義されているかどうか

                public function hasMethod($name, $checkBehaviors = true)
{
    if (method_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->hasMethod($name)) {
                return true;
            }
        }
    }
    return false;
}

            
hasProperty() パブリックメソッド

定義場所: yii\base\Component::hasProperty()

このコンポーネントに対してプロパティが定義されているかどうかを示す値を返します。

プロパティは次の場合に定義されます。

  • クラスが指定された名前に関連付けられたゲッターまたはセッターメソッドを持つ場合(この場合、プロパティ名は大文字と小文字を区別しません)。
  • クラスが、指定された名前のメンバー変数を持っている場合 ($checkVars が true の場合)。
  • アタッチされたビヘイビアが指定された名前のプロパティを持つ場合($checkBehaviorsがtrueの場合)。

参考:

public boolean hasProperty ( $name, $checkVars true, $checkBehaviors true )
$name string

プロパティ名

$checkVars boolean

メンバー変数をプロパティとして扱うかどうか

$checkBehaviors boolean

ビヘイビアのプロパティをこのコンポーネントのプロパティとして扱うかどうか

return boolean

プロパティが定義されているかどうか

                public function hasProperty($name, $checkVars = true, $checkBehaviors = true)
{
    return $this->canGetProperty($name, $checkVars, $checkBehaviors) || $this->canSetProperty($name, false, $checkBehaviors);
}

            
init() パブリックメソッド

ウィジェットを初期化します。

これはフォームの開始タグをレンダリングします。

public void init ( )

                public function init()
{
    parent::init();
    if (!isset($this->options['id'])) {
        $this->options['id'] = $this->getId();
    }
    ob_start();
    ob_implicit_flush(false);
}

            
off() パブリックメソッド

定義場所: yii\base\Component::off()

このコンポーネントから既存のイベントハンドラをデタッチします。

このメソッドは、on() の反対です。

注:イベント名にワイルドカードパターンが渡された場合、このワイルドカードで登録されたハンドラのみが削除され、このワイルドカードに一致するプレーン名で登録されたハンドラは残ります。

on() も参照してください。

public boolean off ( $name, $handler null )
$name string

イベント名

$handler callable|null

削除するイベントハンドラ。null の場合、名前付きイベントにアタッチされたすべてのハンドラが削除されます。

return boolean

ハンドラが見つかり、デタッチされた場合

                public function off($name, $handler = null)
{
    $this->ensureBehaviors();
    if (empty($this->_events[$name]) && empty($this->_eventWildcards[$name])) {
        return false;
    }
    if ($handler === null) {
        unset($this->_events[$name], $this->_eventWildcards[$name]);
        return true;
    }
    $removed = false;
    // plain event names
    if (isset($this->_events[$name])) {
        foreach ($this->_events[$name] as $i => $event) {
            if ($event[0] === $handler) {
                unset($this->_events[$name][$i]);
                $removed = true;
            }
        }
        if ($removed) {
            $this->_events[$name] = array_values($this->_events[$name]);
            return true;
        }
    }
    // wildcard event names
    if (isset($this->_eventWildcards[$name])) {
        foreach ($this->_eventWildcards[$name] as $i => $event) {
            if ($event[0] === $handler) {
                unset($this->_eventWildcards[$name][$i]);
                $removed = true;
            }
        }
        if ($removed) {
            $this->_eventWildcards[$name] = array_values($this->_eventWildcards[$name]);
            // remove empty wildcards to save future redundant regex checks:
            if (empty($this->_eventWildcards[$name])) {
                unset($this->_eventWildcards[$name]);
            }
        }
    }
    return $removed;
}

            
on() パブリックメソッド

定義場所: yii\base\Component::on()

イベントにイベントハンドラをアタッチします。

イベントハンドラは有効なPHPコールバックである必要があります。以下にいくつかの例を示します

function ($event) { ... }         // anonymous function
[$object, 'handleClick']          // $object->handleClick()
['Page', 'handleClick']           // Page::handleClick()
'handleClick'                     // global function handleClick()

イベントハンドラは次のシグネチャで定義する必要があります。

function ($event)

ここで、$event は、イベントに関連付けられたパラメーターを含む yii\base\Event オブジェクトです。

2.0.14以降では、イベント名をワイルドカードパターンとして指定できます

$component->on('event.group.*', function ($event) {
    Yii::trace($event->name . ' is triggered.');
});

こちらも参照してください: off()

public void on ( $name, $handler, $data null, $append true )
$name string

イベント名

$handler callable

イベントハンドラ

$data mixed

イベントがトリガーされたときにイベントハンドラに渡されるデータ。イベントハンドラが呼び出されたとき、このデータはyii\base\Event::$dataを介してアクセスできます。

$append boolean

新しいイベントハンドラを既存のハンドラリストの最後に追加するかどうか。falseの場合、新しいハンドラは既存のハンドラリストの先頭に挿入されます。

                public function on($name, $handler, $data = null, $append = true)
{
    $this->ensureBehaviors();
    if (strpos($name, '*') !== false) {
        if ($append || empty($this->_eventWildcards[$name])) {
            $this->_eventWildcards[$name][] = [$handler, $data];
        } else {
            array_unshift($this->_eventWildcards[$name], [$handler, $data]);
        }
        return;
    }
    if ($append || empty($this->_events[$name])) {
        $this->_events[$name][] = [$handler, $data];
    } else {
        array_unshift($this->_events[$name], [$handler, $data]);
    }
}

            
registerClientScript() public メソッド (バージョン 2.0.12 から利用可能)

必要なJavaScriptコードを登録します。

public void registerClientScript ( )

                public function registerClientScript()
{
    $id = $this->options['id'];
    $options = Json::htmlEncode($this->getClientOptions());
    $attributes = Json::htmlEncode($this->attributes);
    $view = $this->getView();
    ActiveFormAsset::register($view);
    $view->registerJs("jQuery('#$id').yiiActiveForm($attributes, $options);");
}

            
render() public メソッド

定義元: yii\base\Widget::render()

ビューをレンダリングします。

レンダリングされるビューは、次のいずれかの形式で指定できます。

  • パスエイリアス(例:"@app/views/site/index")。
  • アプリケーション内の絶対パス(例: "//site/index"):ビュー名が二重スラッシュで始まる。実際のビューファイルは、アプリケーションのビューパスの下で検索されます。
  • モジュール内の絶対パス(例:"/site/index"):ビュー名が単一のスラッシュで始まる。実際のビューファイルは、現在アクティブなモジュールのビューパスの下で検索されます。
  • 相対パス(例:"index"):実際のビューファイルは、$viewPathの下で検索されます。

ビュー名にファイル拡張子が含まれていない場合は、デフォルトの.phpが使用されます。

public string render ( $view, $params = [] )
$view string

ビューの名前。

$params array

ビューで利用可能にする必要があるパラメータ(名前と値のペア)。

return string

レンダリング結果。

throws yii\base\InvalidArgumentException

ビューファイルが存在しない場合。

                public function render($view, $params = [])
{
    return $this->getView()->render($view, $params, $this);
}

            
renderFile() public メソッド

定義元: yii\base\Widget::renderFile()

ビューファイルをレンダリングします。

public string renderFile ( $file, $params = [] )
$file string

レンダリングされるビューファイル。これは、ファイルパスまたはパスエイリアスのいずれかです。

$params array

ビューで利用可能にする必要があるパラメータ(名前と値のペア)。

return string

レンダリング結果。

throws yii\base\InvalidArgumentException

ビューファイルが存在しない場合。

                public function renderFile($file, $params = [])
{
    return $this->getView()->renderFile($file, $params, $this);
}

            
run() public メソッド

ウィジェットを実行します。

これにより、必要なJavaScriptコードが登録され、フォームの開始タグと終了タグがレンダリングされます。

public void run ( )
throws yii\base\InvalidCallException

beginField()endField()の呼び出しが一致しない場合。

                public function run()
{
    if (!empty($this->_fields)) {
        throw new InvalidCallException('Each beginField() should have a matching endField() call.');
    }
    $content = ob_get_clean();
    $html = Html::beginForm($this->action, $this->method, $this->options);
    $html .= $content;
    if ($this->enableClientScript) {
        $this->registerClientScript();
    }
    $html .= Html::endForm();
    return $html;
}

            
setId() public メソッド

定義元: yii\base\Widget::setId()

ウィジェットのIDを設定します。

public void setId ( $value )
$value string

ウィジェットのID。

                public function setId($value)
{
    $this->_id = $value;
}

            
setView() public メソッド

定義元: yii\base\Widget::setView()

このウィジェットで使用するビューオブジェクトを設定します。

public void setView ( $view )
$view yii\base\View

ビューまたはビューファイルをレンダリングするために使用できるビューオブジェクト。

                public function setView($view)
{
    $this->_view = $view;
}

            
trigger() public メソッド

定義元: yii\base\Component::trigger()

イベントをトリガーします。

このメソッドはイベントの発生を表します。クラスレベルのハンドラを含む、イベントにアタッチされたすべてのハンドラを呼び出します。

public void trigger ( $name, yii\base\Event $event null )
$name string

イベント名

$event yii\base\Event|null

イベントインスタンス。設定されていない場合、デフォルトのyii\base\Eventオブジェクトが作成されます。

                public function trigger($name, Event $event = null)
{
    $this->ensureBehaviors();
    $eventHandlers = [];
    foreach ($this->_eventWildcards as $wildcard => $handlers) {
        if (StringHelper::matchWildcard($wildcard, $name)) {
            $eventHandlers[] = $handlers;
        }
    }
    if (!empty($this->_events[$name])) {
        $eventHandlers[] = $this->_events[$name];
    }
    if (!empty($eventHandlers)) {
        $eventHandlers = call_user_func_array('array_merge', $eventHandlers);
        if ($event === null) {
            $event = new Event();
        }
        if ($event->sender === null) {
            $event->sender = $this;
        }
        $event->handled = false;
        $event->name = $name;
        foreach ($eventHandlers as $handler) {
            $event->data = $handler[1];
            call_user_func($handler[0], $event);
            // stop further handling if the event is handled
            if ($event->handled) {
                return;
            }
        }
    }
    // invoke class-level attached handlers
    Event::trigger($this, $name, $event);
}

            
validate() public static メソッド

1つまたは複数のモデルをバリデーションし、属性IDでインデックス付けされたエラーメッセージの配列を返します。

これは、AJAX検証コードの記述方法を簡略化するヘルパーメソッドです。

たとえば、コントローラアクションで次のコードを使用して、AJAX検証リクエストに応答できます。

$model = new Post;
$model->load(Yii::$app->request->post());
if (Yii::$app->request->isAjax) {
    Yii::$app->response->format = Response::FORMAT_JSON;
    return ActiveForm::validate($model);
}
// ... respond to non-AJAX request ...

複数のモデルを検証するには、次の例のように、各モデルをパラメータとしてこのメソッドに渡すだけです。

ActiveForm::validate($model1, $model2, ...);
public static array validate ( $model, $attributes null )
$model yii\base\Model

検証するモデル。

$attributes mixed

検証する必要がある属性のリスト。このパラメータが空の場合、適用可能な検証ルールにリストされているすべての属性を検証する必要があることを意味します。

このメソッドが複数のモデルを検証するために使用される場合、このパラメータはモデルとして解釈されます。

return array

属性IDでインデックス付けされたエラーメッセージの配列。

                public static function validate($model, $attributes = null)
{
    $result = [];
    if ($attributes instanceof Model) {
        // validating multiple models
        $models = func_get_args();
        $attributes = null;
    } else {
        $models = [$model];
    }
    /* @var $model Model */
    foreach ($models as $model) {
        $model->validate($attributes);
        foreach ($model->getErrors() as $attribute => $errors) {
            $result[Html::getInputId($model, $attribute)] = $errors;
        }
    }
    return $result;
}

            
validateMultiple() public static メソッド

モデルインスタンスの配列をバリデーションし、属性IDでインデックス付けされたエラーメッセージの配列を返します。

これは、表形式入力のAJAX検証コードの記述方法を簡略化するヘルパーメソッドです。

たとえば、コントローラアクションで次のコードを使用して、AJAX検証リクエストに応答できます。

// ... load $models ...
if (Yii::$app->request->isAjax) {
    Yii::$app->response->format = Response::FORMAT_JSON;
    return ActiveForm::validateMultiple($models);
}
// ... respond to non-AJAX request ...
public static array validateMultiple ( $models, $attributes null )
$models array

検証するモデルの配列。

$attributes mixed

検証する必要がある属性のリスト。このパラメータが空の場合、適用可能な検証ルールにリストされているすべての属性を検証する必要があることを意味します。

return array

属性IDでインデックス付けされたエラーメッセージの配列。

                public static function validateMultiple($models, $attributes = null)
{
    $result = [];
    /* @var $model Model */
    foreach ($models as $i => $model) {
        $model->validate($attributes);
        foreach ($model->getErrors() as $attribute => $errors) {
            $result[Html::getInputId($model, "[$i]" . $attribute)] = $errors;
        }
    }
    return $result;
}

            
widget() public static method

定義元: yii\base\Widget::widget()

ウィジェットインスタンスを作成して実行します。

ウィジェットのレンダリング結果はこのメソッドによって返されます。

public static string widget ( $config = [] )
$config array

オブジェクトのプロパティを初期化するために使用される名前と値のペア

return string

ウィジェットのレンダリング結果。

throws Throwable

                public static function widget($config = [])
{
    ob_start();
    ob_implicit_flush(false);
    try {
        /* @var $widget Widget */
        $config['class'] = get_called_class();
        $widget = Yii::createObject($config);
        $out = '';
        if ($widget->beforeRun()) {
            $result = $widget->run();
            $out = $widget->afterRun($result);
        }
    } catch (\Exception $e) {
        // close the output buffer opened above if it has not been closed already
        if (ob_get_level() > 0) {
            ob_end_clean();
        }
        throw $e;
    } catch (\Throwable $e) {
        // close the output buffer opened above if it has not been closed already
        if (ob_get_level() > 0) {
            ob_end_clean();
        }
        throw $e;
    }
    return ob_get_clean() . $out;
}