1 フォロワー

クラス yii\base\DynamicModel

継承yii\base\DynamicModel » yii\base\Model » yii\base\Component » yii\base\BaseObject
実装ArrayAccess, IteratorAggregate, yii\base\Arrayable, yii\base\Configurable, yii\base\StaticInstanceInterface
使用するトレイトyii\base\ArrayableTrait, yii\base\StaticInstanceTrait
利用可能なバージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/base/DynamicModel.php

DynamicModel は、コンストラクタまたはdefineAttribute()を使用して、実行時に属性を定義できる(いわゆる「動的属性」)モデルクラスです。DynamicModel は、アドホックなデータ検証をサポートするために使用できます。

DynamicModel の一般的な使用方法は次のとおりです。

public function actionSearch($name, $email)
{
    $model = DynamicModel::validateData(compact('name', 'email'), [
        [['name', 'email'], 'string', 'max' => 128],
        ['email', 'email'],
    ]);
    if ($model->hasErrors()) {
        // validation fails
    } else {
        // validation succeeds
    }
}

上記の例は、DynamicModel を使用して $name$email を検証する方法を示しています。validateData() メソッドは、DynamicModel のインスタンスを作成し、指定されたデータ(この例では nameemail)を使用して属性を定義し、yii\base\Model::validate() を呼び出します。

通常のモデルと同様に、hasErrors() を使用して検証結果を確認できます。モデルインスタンスを通じて定義された動的属性(例:$model->name$model->email)にもアクセスできます。

あるいは、アドホックなデータ検証を実行するために、より「古典的」な構文を使用することもできます。

$model = new DynamicModel(compact('name', 'email'));
$model->addRule(['name', 'email'], 'string', ['max' => 128])
    ->addRule('email', 'email')
    ->validate();

公開プロパティ

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

プロパティ 説明 定義元
$activeValidators yii\validators\Validator[] 現在の$scenarioに適用可能なバリデータ。 yii\base\Model
$attributes array 属性値(名前 => 値)。 yii\base\Model
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされたビヘイビアのリスト。 yii\base\Component
$errors array すべての属性または指定された属性のエラー。 yii\base\Model
$firstErrors array 最初のエラー。 yii\base\Model
$iterator ArrayIterator リスト内のアイテムを走査するためのイテレータ。 yii\base\Model
$scenario string このモデルが使用されているシナリオ。 yii\base\Model
$validators ArrayObject|yii\validators\Validator[] モデルで宣言されたすべてのバリデータ。 yii\base\Model

公開メソッド

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

メソッド 説明 定義元
__call() クラスメソッドではない名前付きメソッドを呼び出します。 yii\base\Component
__clone() このメソッドは、既存のオブジェクトをクローンしてオブジェクトが作成された後に呼び出されます。 yii\base\Model
__construct() コンストラクタ。 yii\base\DynamicModel
__get() コンポーネントのプロパティの値を返します。 yii\base\DynamicModel
__isset() プロパティが設定されているか(つまり、定義されており、nullではないか)を確認します。 yii\base\DynamicModel
__set() コンポーネントのプロパティの値を設定します。 yii\base\DynamicModel
__unset() コンポーネントのプロパティを null に設定します。 yii\base\DynamicModel
activeAttributes() 現在のシナリオで検証の対象となる属性名を返します。 yii\base\Model
addError() 指定された属性に新しいエラーを追加します。 yii\base\Model
addErrors() エラーのリストを追加します。 yii\base\Model
addRule() このモデルに検証ルールを追加します。 yii\base\DynamicModel
afterValidate() このメソッドは、検証が終了した後に呼び出されます。 yii\base\Model
attachBehavior() このコンポーネントにビヘイビアをアタッチします。 yii\base\Component
attachBehaviors() コンポーネントにビヘイビアのリストをアタッチします。 yii\base\Component
attributeHints() 属性のヒントを返します。 yii\base\Model
attributeLabels() 属性のラベルを返します。 yii\base\DynamicModel
attributes() 属性名のリストを返します。 yii\base\DynamicModel
beforeValidate() このメソッドは、検証が開始される前に呼び出されます。 yii\base\Model
behaviors() このコンポーネントがビヘイビアとして動作するべきビヘイビアのリストを返します。 yii\base\Component
canGetProperty() プロパティを読み取ることができるかどうかを示す値を返します。 yii\base\DynamicModel
canSetProperty() プロパティを設定できるかどうかを示す値を返します。 yii\base\DynamicModel
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
clearErrors() すべての属性または単一の属性のエラーを削除します。 yii\base\Model
createValidators() rules()で指定された検証ルールに基づいてバリデータオブジェクトを作成します。 yii\base\Model
defineAttribute() 属性を定義します。 yii\base\DynamicModel
detachBehavior() コンポーネントからビヘイビアをデタッチします。 yii\base\Component
detachBehaviors() コンポーネントからすべてのビヘイビアをデタッチします。 yii\base\Component
ensureBehaviors() behaviors()で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。 yii\base\Component
extraFields() toArray()でさらに展開して返すことができるフィールドのリストを返します。 yii\base\ArrayableTrait
fields() 特定のフィールドが指定されていない場合に、デフォルトでtoArray()によって返される必要のあるフィールドのリストを返します。 yii\base\ArrayableTrait
formName() このモデルクラスが使用する必要があるフォーム名を返します。 yii\base\Model
generateAttributeLabel() 指定された属性名に基づいて、ユーザーフレンドリーな属性ラベルを生成します。 yii\base\Model
getActiveValidators() 現在の$scenarioに適用可能なバリデータを返します。 yii\base\Model
getAttributeHint() 指定された属性のテキストヒントを返します。 yii\base\Model
getAttributeLabel() 指定された属性のテキストラベルを返します。 yii\base\Model
getAttributes() 属性値を返します。 yii\base\Model
getBehavior() 名前付きビヘイビアオブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされたすべてのビヘイビアを返します。 yii\base\Component
getErrorSummary() すべての属性のエラーを一次元配列として返します。 yii\base\Model
getErrors() すべての属性または単一の属性のエラーを返します。 yii\base\Model
getFirstError() 指定された属性の最初のエラーを返します。 yii\base\Model
getFirstErrors() モデル内のすべての属性の最初のエラーを返します。 yii\base\Model
getIterator() モデル内の属性を走査するためのイテレータを返します。 yii\base\Model
getScenario() このモデルが使用されているシナリオを返します。 yii\base\Model
getValidators() rules()で宣言されたすべてのバリデータを返します。 yii\base\Model
hasAttribute() モデルが指定された名前の属性を持っているかどうかを示す値を返します。 yii\base\DynamicModel
hasErrors() 検証エラーがあるかどうかを示す値を返します。 yii\base\Model
hasEventHandlers() 名前付きイベントにアタッチされたハンドラがあるかどうかを示す値を返します。 yii\base\Component
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\Component
hasProperty() このコンポーネントにプロパティが定義されているかどうかを示す値を返します。 yii\base\Component
init() オブジェクトを初期化します。 yii\base\BaseObject
instance() メタ情報を取得するために使用できる静的クラスインスタンスを返します。 yii\base\StaticInstanceTrait
isAttributeActive() 属性が現在のシナリオでアクティブであるかどうかを示す値を返します。 yii\base\Model
isAttributeRequired() 属性が必須であるかどうかを示す値を返します。 yii\base\Model
isAttributeSafe() 属性が大量割り当てに対して安全であるかどうかを示す値を返します。 yii\base\Model
load() モデルに入力データを設定します。 yii\base\Model
loadMultiple() エンドユーザーからのデータを使用してモデルのセットを設定します。 yii\base\Model
off() このコンポーネントから既存のイベントハンドラをデタッチします。 yii\base\Component
offsetExists() 指定されたオフセットに要素が存在するかどうかを返します。 yii\base\Model
offsetGet() 指定されたオフセットにある要素を返します。 yii\base\Model
offsetSet() 指定されたオフセットに要素を設定します。 yii\base\Model
offsetUnset() 指定されたオフセットにある要素の値を null に設定します。 yii\base\Model
on() イベントハンドラをイベントにアタッチします。 yii\base\Component
onUnsafeAttribute() このメソッドは、安全でない属性が大量に代入されるときに呼び出されます。 yii\base\Model
rules() 属性のバリデーションルールを返します。 yii\base\Model
safeAttributes() 現在のシナリオで大量代入が安全な属性名を返します。 yii\base\Model
scenarios() シナリオと対応するアクティブな属性のリストを返します。 yii\base\Model
setAttributeLabel() 単一の属性のラベルを設定します。 yii\base\DynamicModel
setAttributeLabels() すべての属性のラベルを設定します。 yii\base\DynamicModel
setAttributes() 大量に属性値を設定します。 yii\base\Model
setScenario() モデルのシナリオを設定します。 yii\base\Model
toArray() モデルを配列に変換します。 yii\base\ArrayableTrait
trigger() イベントをトリガーします。 yii\base\Component
undefineAttribute() 属性を未定義にします。 yii\base\DynamicModel
validate() データ検証を実行します。 yii\base\Model
validateData() 指定されたバリデーションルールを使用して、指定されたデータを検証します。 yii\base\DynamicModel
validateMultiple() 複数のモデルを検証します。 yii\base\Model

保護されたメソッド

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

メソッド 説明 定義元
extractFieldsFor() 指定されたルートフィールドのフィールドコレクションからネストされたフィールドを抽出します。ネストされたフィールドはドット (.) で区切られます。例: "item.id"。前の例では "id" が抽出されます。 yii\base\ArrayableTrait
extractRootFields() ネストされたフィールドからルートフィールド名を抽出します。 yii\base\ArrayableTrait
resolveFields() toArray() によってどのフィールドを返すことができるかを決定します。 yii\base\ArrayableTrait

イベント

継承されたイベントを隠す

イベント 説明 定義元
EVENT_AFTER_VALIDATE yii\base\Event validate() の最後に発生するイベント yii\base\Model
EVENT_BEFORE_VALIDATE yii\base\ModelEvent validate() の最初に発生するイベント。 yii\base\Model

定数

継承された定数を隠す

定数 説明 定義元
SCENARIO_DEFAULT 'default' デフォルトシナリオの名前。 yii\base\Model

メソッド詳細

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

__call() public メソッド

定義元: 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() public メソッド

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

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

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

public void __clone ( )

                public function __clone()
{
    parent::__clone();
    $this->_errors = null;
    $this->_validators = null;
}

            
__construct() public メソッド

コンストラクタ。

public void __construct ( array $attributes = [], $config = [] )
$attributes array

定義されている属性(名前と値のペア、または名前)。

$config array

このオブジェクトに適用される設定配列。

                public function __construct(array $attributes = [], $config = [])
{
    foreach ($attributes as $name => $value) {
        if (is_int($name)) {
            $this->_attributes[$value] = null;
        } else {
            $this->_attributes[$name] = $value;
        }
    }
    parent::__construct($config);
}

            
__get() public メソッド

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

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

  • ゲッターによって定義されたプロパティ:ゲッターの結果を返す
  • 動作のプロパティ:動作のプロパティ値を返す

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

public mixed __get ( $name )
$name string

プロパティ名

return mixed

プロパティ値または動作のプロパティの値

throws yii\base\UnknownPropertyException

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

throws yii\base\InvalidCallException

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

                public function __get($name)
{
    if ($this->hasAttribute($name)) {
        return $this->_attributes[$name];
    }
    return parent::__get($name);
}

            
__isset() public メソッド

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

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

  • セッターによって定義されたプロパティ:プロパティが設定されているかどうかを返す
  • 動作のプロパティ:プロパティが設定されているかどうかを返す
  • 存在しないプロパティの場合は false を返す

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

public boolean __isset ( $name )
$name string

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

return boolean

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

                public function __isset($name)
{
    if ($this->hasAttribute($name)) {
        return isset($this->_attributes[$name]);
    }
    return parent::__isset($name);
}

            
__set() public メソッド

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

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

  • セッターによって定義されたプロパティ:プロパティ値を設定する
  • "on xyz" の形式のイベント:ハンドラをイベント "xyz" にアタッチする
  • "as xyz" の形式の動作:"xyz" という名前の動作をアタッチする
  • 動作のプロパティ:動作のプロパティ値を設定する

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

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

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

$value mixed

プロパティ値

throws yii\base\UnknownPropertyException

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

throws yii\base\InvalidCallException

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

                public function __set($name, $value)
{
    if ($this->hasAttribute($name)) {
        $this->_attributes[$name] = $value;
    } else {
        parent::__set($name, $value);
    }
}

            
__unset() public メソッド

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

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

  • セッターによって定義されたプロパティ:プロパティ値を null に設定する
  • 動作のプロパティ:プロパティ値を null に設定する

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

public void __unset ( $name )
$name string

プロパティ名

throws yii\base\InvalidCallException

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

                public function __unset($name)
{
    if ($this->hasAttribute($name)) {
        unset($this->_attributes[$name]);
    } else {
        parent::__unset($name);
    }
}

            
activeAttributes() public メソッド

定義元: yii\base\Model::activeAttributes()

現在のシナリオで検証の対象となる属性名を返します。

public string[] activeAttributes ( )
return string[]

安全な属性名

                public function activeAttributes()
{
    $scenario = $this->getScenario();
    $scenarios = $this->scenarios();
    if (!isset($scenarios[$scenario])) {
        return [];
    }
    $attributes = array_keys(array_flip($scenarios[$scenario]));
    foreach ($attributes as $i => $attribute) {
        if (strncmp($attribute, '!', 1) === 0) {
            $attributes[$i] = substr($attribute, 1);
        }
    }
    return $attributes;
}

            
addError() public メソッド

定義元: yii\base\Model::addError()

指定された属性に新しいエラーを追加します。

public void addError ( $attribute, $error '' )
$attribute string

属性名

$error string

新しいエラーメッセージ

                public function addError($attribute, $error = '')
{
    $this->_errors[$attribute][] = $error;
}

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

定義場所: yii\base\Model::addErrors()

エラーのリストを追加します。

public void addErrors ( array $items )
$items array

エラーのリスト。配列のキーは属性名でなければなりません。配列の値はエラーメッセージである必要があります。属性に複数のエラーがある場合は、これらのエラーを配列で指定する必要があります。getErrors() の結果をこのパラメータの値として使用できます。

                public function addErrors(array $items)
{
    foreach ($items as $attribute => $errors) {
        if (is_array($errors)) {
            foreach ($errors as $error) {
                $this->addError($attribute, $error);
            }
        } else {
            $this->addError($attribute, $errors);
        }
    }
}

            
addRule() public メソッド

このモデルに検証ルールを追加します。

また、$validators を直接操作して、バリデーションルールを追加または削除することもできます。このメソッドはショートカットを提供します。

public $this addRule ( $attributes, $validator, $options = [] )
$attributes string|array

ルールによって検証される属性。

$validator string|yii\validators\Validator|Closure

バリデータ。これは次のいずれかになります。

  • builtInValidators にリストされている組み込みバリデータ名。
  • モデルクラスのメソッド名。
  • 無名関数。
  • バリデータクラス名。
  • バリデータ。
$options array

バリデータに適用されるオプション(名前と値のペア)。

                public function addRule($attributes, $validator, $options = [])
{
    $validators = $this->getValidators();
    if ($validator instanceof Validator) {
        $validator->attributes = (array)$attributes;
    } else {
        $validator = Validator::createValidator($validator, $this, (array)$attributes, $options);
    }
    $validators->append($validator);
    $this->defineAttributesByValidator($validator);
    return $this;
}

            
afterValidate() public メソッド

定義場所: yii\base\Model::afterValidate()

このメソッドは、検証が終了した後に呼び出されます。

デフォルトの実装では、afterValidate イベントが発生します。バリデーション後に後処理を行うために、このメソッドをオーバーライドすることができます。イベントが発生するように、親の実装が呼び出されるようにしてください。

public void afterValidate ( )

                public function afterValidate()
{
    $this->trigger(self::EVENT_AFTER_VALIDATE);
}

            
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);
    }
}

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

定義場所: yii\base\Model::attributeHints()

属性のヒントを返します。

属性ヒントは主に表示目的で使用されます。たとえば、属性 isPublic が与えられた場合、属性の意味をユーザーフレンドリーに説明し、エンドユーザーに表示できるヒント ログインしていないユーザーに対して投稿を表示するかどうか を宣言できます。

ラベルとは異なり、明示的な宣言が省略されている場合、ヒントは生成されません。

親クラスで定義されたヒントを継承するには、子クラスは array_merge() などの関数を使用して親ヒントと子ヒントをマージする必要があります。

public array attributeHints ( )
return array

属性ヒント(名前 => ヒント)

                public function attributeHints()
{
    return [];
}

            
attributeLabels() public メソッド

属性のラベルを返します。

属性ラベルは主に表示目的で使用されます。たとえば、属性 firstName が与えられた場合、よりユーザーフレンドリーでエンドユーザーに表示できるラベル を宣言できます。

デフォルトでは、属性ラベルは generateAttributeLabel() を使用して生成されます。このメソッドでは、属性ラベルを明示的に指定できます。

親クラスで定義されたラベルを継承するには、子クラスは array_merge() などの関数を使用して親ラベルと子ラベルをマージする必要があります。

public array attributeLabels ( )
return array

属性ラベル(名前 => ラベル)

                public function attributeLabels()
{
    return $this->_attributeLabels;
}

            
attributes() public メソッド

属性名のリストを返します。

デフォルトでは、このメソッドはクラスのすべてのパブリックな非静的プロパティを返します。このメソッドをオーバーライドして、デフォルトの動作を変更することができます。

public string[] attributes ( )
return string[]

属性名のリスト。

                public function attributes()
{
    return array_keys($this->_attributes);
}

            
beforeValidate() public メソッド

定義場所: yii\base\Model::beforeValidate()

このメソッドは、検証が開始される前に呼び出されます。

デフォルトの実装では、beforeValidate イベントが発生します。バリデーション前に事前チェックを行うために、このメソッドをオーバーライドすることができます。イベントが発生するように、親の実装が呼び出されるようにしてください。

public boolean beforeValidate ( )
return boolean

バリデーションを実行する必要があるかどうか。デフォルトは true です。false が返された場合、バリデーションは停止し、モデルは無効とみなされます。

                public function beforeValidate()
{
    $event = new ModelEvent();
    $this->trigger(self::EVENT_BEFORE_VALIDATE, $event);
    return $event->isValid;
}

            
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 メソッド

プロパティを読み取ることができるかどうかを示す値を返します。

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

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

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

return boolean

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

                public function canGetProperty($name, $checkVars = true, $checkBehaviors = true)
{
    return parent::canGetProperty($name, $checkVars, $checkBehaviors) || $this->hasAttribute($name);
}

            
canSetProperty() public メソッド

プロパティを設定できるかどうかを示す値を返します。

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

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

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

return boolean

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

                public function canSetProperty($name, $checkVars = true, $checkBehaviors = true)
{
    return parent::canSetProperty($name, $checkVars, $checkBehaviors) || $this->hasAttribute($name);
}

            
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();
}

            
clearErrors() public メソッド

定義元: yii\base\Model::clearErrors()

すべての属性または単一の属性のエラーを削除します。

public void clearErrors ( $attribute null )
$attribute string|null

属性名。すべての属性のエラーを削除するには null を使用します。

                public function clearErrors($attribute = null)
{
    if ($attribute === null) {
        $this->_errors = [];
    } else {
        unset($this->_errors[$attribute]);
    }
}

            
createValidators() public メソッド

定義元: yii\base\Model::createValidators()

rules()で指定された検証ルールに基づいてバリデータオブジェクトを作成します。

getValidators() とは異なり、このメソッドが呼び出されるたびに、新しいバリデーターのリストが返されます。

public ArrayObject createValidators ( )
return ArrayObject

バリデーター

throws yii\base\InvalidConfigException

いずれかのバリデーションルール構成が無効な場合

                public function createValidators()
{
    $validators = new ArrayObject();
    foreach ($this->rules() as $rule) {
        if ($rule instanceof Validator) {
            $validators->append($rule);
        } elseif (is_array($rule) && isset($rule[0], $rule[1])) { // attributes, validator type
            $validator = Validator::createValidator($rule[1], $this, (array) $rule[0], array_slice($rule, 2));
            $validators->append($validator);
        } else {
            throw new InvalidConfigException('Invalid validation rule: a rule must specify both attribute names and validator type.');
        }
    }
    return $validators;
}

            
defineAttribute() public メソッド

属性を定義します。

public void defineAttribute ( $name, $value null )
$name string

属性名。

$value mixed

属性値。

                public function defineAttribute($name, $value = null)
{
    $this->_attributes[$name] = $value;
}

            
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);
    }
}

            
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);
        }
    }
}

            
extraFields() public メソッド

定義元: yii\base\ArrayableTrait::extraFields()

toArray()でさらに展開して返すことができるフィールドのリストを返します。

このメソッドは fields() と似ていますが、このメソッドによって返されるフィールドのリストは、デフォルトでは toArray() によって返されない点が異なります。 toArray() を呼び出す際に展開されるフィールド名が明示的に指定された場合にのみ、それらの値がエクスポートされます。

デフォルトの実装では、空の配列が返されます。

このメソッドをオーバーライドして、コンテキスト情報 (例: 現在のアプリケーションユーザー) に基づいて展開可能なフィールドのリストを返すことができます。

参照:

public array extraFields ( )
return array

展開可能なフィールド名またはフィールド定義のリスト。戻り値の形式については fields() を参照してください。

                public function extraFields()
{
    return [];
}

            
extractFieldsFor() protected メソッド (バージョン 2.0.14 から利用可能)

定義元: yii\base\ArrayableTrait::extractFieldsFor()

指定されたルートフィールドのフィールドコレクションからネストされたフィールドを抽出します。ネストされたフィールドはドット (.) で区切られます。例: "item.id"。前の例では "id" が抽出されます。

protected array extractFieldsFor ( array $fields, $rootField )
$fields array

抽出を要求されたフィールド

$rootField string

ネストされたフィールドを抽出したいルートフィールド

return array

指定されたフィールドに対して抽出されたネストされたフィールド

                protected function extractFieldsFor(array $fields, $rootField)
{
    $result = [];
    foreach ($fields as $field) {
        if (0 === strpos($field, "{$rootField}.")) {
            $result[] = preg_replace('/^' . preg_quote($rootField, '/') . '\./i', '', $field);
        }
    }
    return array_unique($result);
}

            
extractRootFields() protected メソッド (バージョン 2.0.14 から利用可能)

定義元: yii\base\ArrayableTrait::extractRootFields()

ネストされたフィールドからルートフィールド名を抽出します。

ネストされたフィールドはドット (.) で区切られます。例: "item.id"。上記の例では "item" が抽出されます。

protected array extractRootFields ( array $fields )
$fields array

抽出を要求されたフィールド

return array

与えられたネストされたフィールドから抽出されたルートフィールド

                protected function extractRootFields(array $fields)
{
    $result = [];
    foreach ($fields as $field) {
        $result[] = current(explode('.', $field, 2));
    }
    if (in_array('*', $result, true)) {
        $result = [];
    }
    return array_unique($result);
}

            
fields() public メソッド

定義元: yii\base\ArrayableTrait::fields()

特定のフィールドが指定されていない場合に、デフォルトでtoArray()によって返される必要のあるフィールドのリストを返します。

フィールドとは、toArray() によって返される配列内の名前付き要素のことです。

このメソッドは、フィールド名またはフィールド定義の配列を返す必要があります。前者である場合、フィールド名はオブジェクトプロパティ名として扱われ、その値がフィールド値として使用されます。後者である場合、配列のキーはフィールド名である必要があり、配列の値は対応するフィールド定義である必要があります。これは、オブジェクトプロパティ名または対応するフィールド値を返す PHP の呼び出し可能なものでありえます。呼び出し可能のシグネチャは次のとおりである必要があります。

function ($model, $field) {
    // return field value
}

たとえば、次のコードは 4 つのフィールドを宣言します。

  • email: フィールド名はプロパティ名 email と同じです。
  • firstNamelastName: フィールド名は firstNamelastName であり、それらの値は first_name および last_name プロパティから取得されます。
  • fullName: フィールド名は fullName です。その値は first_namelast_name を連結することで取得されます。
return [
    'email',
    'firstName' => 'first_name',
    'lastName' => 'last_name',
    'fullName' => function () {
        return $this->first_name . ' ' . $this->last_name;
    },
];

このメソッドでは、コンテキスト情報に基づいて異なるフィールドリストを返したい場合もあります。たとえば、現在のアプリケーションユーザーの権限に応じて、表示可能なフィールドの異なるセットを返すか、一部のフィールドをフィルタリングできます。

このメソッドのデフォルトの実装では、パブリックオブジェクトのメンバー変数をそれら自身でインデックス付けして返します。

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

public array fields ( )
return array

フィールド名またはフィールド定義のリスト。

                public function fields()
{
    $fields = array_keys(Yii::getObjectVars($this));
    return array_combine($fields, $fields);
}

            
formName() public メソッド

定義元: yii\base\Model::formName()

このモデルクラスが使用する必要があるフォーム名を返します。

フォーム名は主に yii\widgets\ActiveForm がモデルの属性に対する入力フィールドに名前を付ける方法を決定するために使用されます。フォーム名が "A" で属性名が "b" の場合、対応する入力名は "A[b]" になります。フォーム名が空の文字列の場合、入力名は "b" になります。

上記の命名スキーマの目的は、複数の異なるモデルを含むフォームの場合、各モデルの属性が POST データのサブ配列にグループ化され、それらを区別しやすくすることです。

デフォルトでは、このメソッドはモデルクラス名 (名前空間部分を除く) をフォーム名として返します。モデルが異なるフォームで使用される場合は、それをオーバーライドできます。

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

public string formName ( )
return string

このモデルクラスのフォーム名。

throws yii\base\InvalidConfigException

フォームが匿名クラスで定義されており、formName() メソッドがオーバーライドされていない場合。

                public function formName()
{
    $reflector = new ReflectionClass($this);
    if (PHP_VERSION_ID >= 70000 && $reflector->isAnonymous()) {
        throw new InvalidConfigException('The "formName()" method should be explicitly defined for anonymous models');
    }
    return $reflector->getShortName();
}

            
generateAttributeLabel() public メソッド

定義元: yii\base\Model::generateAttributeLabel()

指定された属性名に基づいて、ユーザーフレンドリーな属性ラベルを生成します。

これは、アンダースコア、ダッシュ、ドットを空白に置き換え、各単語の最初の文字を大文字にすることで行われます。たとえば、'department_name' または 'DepartmentName' は 'Department Name' を生成します。

public string generateAttributeLabel ( $name )
$name string

列名

return string

属性ラベル

                public function generateAttributeLabel($name)
{
    return Inflector::camel2words($name, true);
}

            
getActiveValidators() public メソッド

定義元: yii\base\Model::getActiveValidators()

現在の$scenarioに適用可能なバリデータを返します。

public yii\validators\Validator[] getActiveValidators ( $attribute null )
$attribute string|null

適用可能なバリデーターを返す必要がある属性の名前。これが null の場合、モデル内のすべての属性のバリデーターが返されます。

return yii\validators\Validator[]

現在の$scenarioに適用可能なバリデータ。

                public function getActiveValidators($attribute = null)
{
    $activeAttributes = $this->activeAttributes();
    if ($attribute !== null && !in_array($attribute, $activeAttributes, true)) {
        return [];
    }
    $scenario = $this->getScenario();
    $validators = [];
    foreach ($this->getValidators() as $validator) {
        if ($attribute === null) {
            $validatorAttributes = $validator->getValidationAttributes($activeAttributes);
            $attributeValid = !empty($validatorAttributes);
        } else {
            $attributeValid = in_array($attribute, $validator->getValidationAttributes($attribute), true);
        }
        if ($attributeValid && $validator->isActive($scenario)) {
            $validators[] = $validator;
        }
    }
    return $validators;
}

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

定義元: yii\base\Model::getAttributeHint()

指定された属性のテキストヒントを返します。

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

public string getAttributeHint ( $attribute )
$attribute string

属性名

return string

属性ヒント

                public function getAttributeHint($attribute)
{
    $hints = $this->attributeHints();
    return isset($hints[$attribute]) ? $hints[$attribute] : '';
}

            
getAttributeLabel() public メソッド

定義元: yii\base\Model::getAttributeLabel()

指定された属性のテキストラベルを返します。

参照:

public string getAttributeLabel ( $attribute )
$attribute string

属性名

return string

属性ラベル

                public function getAttributeLabel($attribute)
{
    $labels = $this->attributeLabels();
    return isset($labels[$attribute]) ? $labels[$attribute] : $this->generateAttributeLabel($attribute);
}

            
getAttributes() public メソッド

定義元: yii\base\Model::getAttributes()

属性値を返します。

public array getAttributes ( $names null, $except = [] )
$names array|null

値を返す必要がある属性のリスト。デフォルトは null で、attributes() にリストされているすべての属性が返されることを意味します。配列の場合、配列内の属性のみが返されます。

$except array

値を返すべきではない属性のリスト。

return array

属性値(名前 => 値)。

                public function getAttributes($names = null, $except = [])
{
    $values = [];
    if ($names === null) {
        $names = $this->attributes();
    }
    foreach ($names as $name) {
        $values[$name] = $this->$name;
    }
    foreach ($except as $name) {
        unset($values[$name]);
    }
    return $values;
}

            
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() public メソッド

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

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

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

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

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

            
getErrorSummary() public メソッド (バージョン 2.0.14 以降で使用可能)

定義元: yii\base\Model::getErrorSummary()

すべての属性のエラーを一次元配列として返します。

参照:

public array getErrorSummary ( $showAllErrors )
$showAllErrors boolean

真の場合、各属性のエラーメッセージがすべて表示されます。偽の場合、各属性の最初のエラーメッセージのみが表示されます。

return array

すべての属性のエラーを1次元配列として返します。エラーがない場合は空の配列が返されます。

                public function getErrorSummary($showAllErrors)
{
    $lines = [];
    $errors = $showAllErrors ? $this->getErrors() : $this->getFirstErrors();
    foreach ($errors as $es) {
        $lines = array_merge($lines, (array)$es);
    }
    return $lines;
}

            
getErrors() public メソッド

定義元: yii\base\Model::getErrors()

すべての属性または単一の属性のエラーを返します。

参照:

public array getErrors ( $attribute null )
$attribute string|null

属性名。すべての属性のエラーを取得するには、nullを使用します。

return array

すべての属性または指定された属性のエラーを返します。エラーがない場合は空の配列が返されます。詳細な説明については、getErrors()を参照してください。すべての属性のエラーを返す場合、結果は次のような2次元配列になることに注意してください。

[
    'username' => [
        'Username is required.',
        'Username must contain only word characters.',
    ],
    'email' => [
        'Email address is invalid.',
    ]
]

                public function getErrors($attribute = null)
{
    if ($attribute === null) {
        return $this->_errors === null ? [] : $this->_errors;
    }
    return isset($this->_errors[$attribute]) ? $this->_errors[$attribute] : [];
}

            
getFirstError() public メソッド

定義元: yii\base\Model::getFirstError()

指定された属性の最初のエラーを返します。

参照:

public string|null getFirstError ( $attribute )
$attribute string

属性名。

return string|null

エラーメッセージ。エラーがない場合はnullが返されます。

                public function getFirstError($attribute)
{
    return isset($this->_errors[$attribute]) ? reset($this->_errors[$attribute]) : null;
}

            
getFirstErrors() public メソッド

定義元: yii\base\Model::getFirstErrors()

モデル内のすべての属性の最初のエラーを返します。

参照:

public array getFirstErrors ( )
return array

最初のエラー。配列のキーは属性名、配列の値は対応するエラーメッセージです。エラーがない場合は空の配列が返されます。

                public function getFirstErrors()
{
    if (empty($this->_errors)) {
        return [];
    }
    $errors = [];
    foreach ($this->_errors as $name => $es) {
        if (!empty($es)) {
            $errors[$name] = reset($es);
        }
    }
    return $errors;
}

            
getIterator() public メソッド

定義元: yii\base\Model::getIterator()

モデル内の属性を走査するためのイテレータを返します。

このメソッドはインターフェースIteratorAggregateで必要とされます。

public ArrayIterator getIterator ( )
return ArrayIterator

リスト内のアイテムを走査するためのイテレータ。

                #[\ReturnTypeWillChange]
public function getIterator()
{
    $attributes = $this->getAttributes();
    return new ArrayIterator($attributes);
}

            
getScenario() public メソッド

定義元: yii\base\Model::getScenario()

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

シナリオは、検証の実行方法と、一括代入できる属性に影響します。

public string getScenario ( )
return string

このモデルが使用しているシナリオ。SCENARIO_DEFAULTがデフォルトです。

                public function getScenario()
{
    return $this->_scenario;
}

            
getValidators() public メソッド

定義元: yii\base\Model::getValidators()

rules()で宣言されたすべてのバリデータを返します。

このメソッドは、現在の$scenarioに適用可能なバリデーターのみを返すgetActiveValidators()とは異なります。

このメソッドはArrayObjectオブジェクトを返すため、(モデルのビヘイビアで役立つ)バリデーターを挿入または削除することで操作できます。例えば、

$model->validators[] = $newValidator;
public ArrayObject|yii\validators\Validator[] getValidators ( )
return ArrayObject|yii\validators\Validator[]

モデルで宣言されたすべてのバリデータ。

                public function getValidators()
{
    if ($this->_validators === null) {
        $this->_validators = $this->createValidators();
    }
    return $this->_validators;
}

            
hasAttribute() public メソッド (バージョン 2.0.16 以降で使用可能)

モデルが指定された名前の属性を持っているかどうかを示す値を返します。

public boolean hasAttribute ( $name )
$name string

属性の名前。

return boolean

モデルが指定された名前の属性を持っているかどうか。

                public function hasAttribute($name)
{
    return array_key_exists($name, $this->_attributes);
}

            
hasErrors() public メソッド

定義元: yii\base\Model::hasErrors()

検証エラーがあるかどうかを示す値を返します。

public boolean hasErrors ( $attribute null )
$attribute string|null

属性名。すべての属性を確認するには、nullを使用します。

return boolean

エラーがあるかどうか。

                public function hasErrors($attribute = null)
{
    return $attribute === null ? !empty($this->_errors) : isset($this->_errors[$attribute]);
}

            
hasEventHandlers() public メソッド

定義元: 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() public メソッド

定義元: 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() public メソッド

定義元: 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 メソッド

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

オブジェクトを初期化します。

このメソッドは、オブジェクトが指定された構成で初期化された後、コンストラクターの最後に呼び出されます。

public void init ( )

                public function init()
{
}

            
instance() public static メソッド

定義元: yii\base\StaticInstanceTrait::instance()

メタ情報を取得するために使用できる静的クラスインスタンスを返します。

public static static instance ( $refresh false )
$refresh boolean

静的インスタンスが既にキャッシュされている場合でも、再作成するかどうか。

return yii\base\DynamicModel

クラスのインスタンス。

                public static function instance($refresh = false)
{
    $className = get_called_class();
    if ($refresh || !isset(self::$_instances[$className])) {
        self::$_instances[$className] = Yii::createObject($className);
    }
    return self::$_instances[$className];
}

            
isAttributeActive() public メソッド

定義元: yii\base\Model::isAttributeActive()

属性が現在のシナリオでアクティブであるかどうかを示す値を返します。

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

public boolean isAttributeActive ( $attribute )
$attribute string

属性名

return boolean

属性が現在のシナリオでアクティブかどうか

                public function isAttributeActive($attribute)
{
    return in_array($attribute, $this->activeAttributes(), true);
}

            
isAttributeRequired() public メソッド

定義元: yii\base\Model::isAttributeRequired()

属性が必須であるかどうかを示す値を返します。

これは、属性が現在の $scenariorequired 検証ルールに関連付けられているかどうかを確認することによって決定されます。

バリデーターが $when を使用して条件付き検証を適用している場合、モデルにデータがロードされる前に呼び出される可能性があるため、このメソッドは when 条件に関係なく false を返すことに注意してください。

public boolean isAttributeRequired ( $attribute )
$attribute string

属性名

return boolean

属性が必須かどうか

                public function isAttributeRequired($attribute)
{
    foreach ($this->getActiveValidators($attribute) as $validator) {
        if ($validator instanceof RequiredValidator && $validator->when === null) {
            return true;
        }
    }
    return false;
}

            
isAttributeSafe() public メソッド

定義元: yii\base\Model::isAttributeSafe()

属性が大量割り当てに対して安全であるかどうかを示す値を返します。

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

public boolean isAttributeSafe ( $attribute )
$attribute string

属性名

return boolean

属性が大量代入に対して安全かどうか

                public function isAttributeSafe($attribute)
{
    return in_array($attribute, $this->safeAttributes(), true);
}

            
load() public メソッド

定義元: yii\base\Model::load()

モデルに入力データを設定します。

このメソッドは、次の便利なショートカットを提供します。

if (isset($_POST['FormName'])) {
    $model->attributes = $_POST['FormName'];
    if ($model->save()) {
        // handle success
    }
}

load() を使用すると、次のように記述できます。

if ($model->load($_POST) && $model->save()) {
    // handle success
}

load() は、$formName パラメーターが指定されていない限り、モデルの formName() メソッド (オーバーライドできます) から 'FormName' を取得します。フォーム名が空の場合、load()$data['FormName'] の代わりに、$data 全体でモデルを移入します。

移入されるデータは、setAttributes() による安全性のチェックの対象となることに注意してください。

public boolean load ( $data, $formName null )
$data array

ロードするデータ配列。通常は $_POST または $_GET

$formName string|null

モデルにデータをロードするために使用するフォーム名。フォームを使用しない場合は空の文字列。設定しない場合は、formName() が使用されます。

return boolean

load()$data で予期されるフォームを見つけたかどうか。

                public function load($data, $formName = null)
{
    $scope = $formName === null ? $this->formName() : $formName;
    if ($scope === '' && !empty($data)) {
        $this->setAttributes($data);
        return true;
    } elseif (isset($data[$scope])) {
        $this->setAttributes($data[$scope]);
        return true;
    }
    return false;
}

            
loadMultiple() public static メソッド

定義元: yii\base\Model::loadMultiple()

エンドユーザーからのデータを使用してモデルのセットを設定します。

このメソッドは、主にテーブル形式のデータ入力を収集するために使用されます。各モデルにロードされるデータは $data[formName][index] です。ここで、formNameformName() の値を参照し、index$models 配列内のモデルのインデックスを参照します。formName() が空の場合、各モデルの移入に $data[index] が使用されます。各モデルに移入されるデータは、setAttributes() による安全性チェックの対象となります。

public static boolean loadMultiple ( $models, $data, $formName null )
$models array

移入するモデル。すべてのモデルが同じクラスを持っている必要があります。

$data array

データ配列。これは通常 $_POST または $_GET ですが、エンドユーザーが提供する有効な配列でもかまいません。

$formName string|null

モデルにデータをロードするために使用するフォーム名。設定しない場合、$models の最初のモデルの formName() 値が使用されます。このパラメーターはバージョン 2.0.1 以降で使用できます。

return boolean

モデルの少なくとも 1 つが正常に移入されたかどうか。

                public static function loadMultiple($models, $data, $formName = null)
{
    if ($formName === null) {
        /* @var $first Model|false */
        $first = reset($models);
        if ($first === false) {
            return false;
        }
        $formName = $first->formName();
    }
    $success = false;
    foreach ($models as $i => $model) {
        /* @var $model Model */
        if ($formName == '') {
            if (!empty($data[$i]) && $model->load($data[$i], '')) {
                $success = true;
            }
        } elseif (!empty($data[$formName][$i]) && $model->load($data[$formName][$i], '')) {
            $success = true;
        }
    }
    return $success;
}

            
off() public メソッド

定義元: 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;
}

            
offsetExists() public メソッド

定義元: yii\base\Model::offsetExists()

指定されたオフセットに要素が存在するかどうかを返します。

このメソッドは、SPLインターフェースArrayAccessで必要です。isset($model[$offset])のように使用すると、暗黙的に呼び出されます。

public boolean offsetExists ( $offset )
$offset string

チェックするオフセット。

return boolean

オフセットが存在するかどうか。

                #[\ReturnTypeWillChange]
public function offsetExists($offset)
{
    return isset($this->$offset);
}

            
offsetGet() public メソッド

定義元: yii\base\Model::offsetGet()

指定されたオフセットにある要素を返します。

このメソッドは、SPLインターフェースArrayAccessで必要です。$value = $model[$offset];のように使用すると、暗黙的に呼び出されます。

public mixed offsetGet ( $offset )
$offset string

要素を取得するオフセット。

return mixed

オフセットにある要素。オフセットに要素が見つからない場合はnull。

                #[\ReturnTypeWillChange]
public function offsetGet($offset)
{
    return $this->$offset;
}

            
offsetSet() public メソッド

定義元: yii\base\Model::offsetSet()

指定されたオフセットに要素を設定します。

このメソッドは、SPLインターフェースArrayAccessで必要です。$model[$offset] = $value;のように使用すると、暗黙的に呼び出されます。

public void offsetSet ( $offset, $value )
$offset string

要素を設定するオフセット。

$value mixed

要素の値。

                #[\ReturnTypeWillChange]
public function offsetSet($offset, $value)
{
    $this->$offset = $value;
}

            
offsetUnset() public メソッド

定義元: yii\base\Model::offsetUnset()

指定されたオフセットにある要素の値を null に設定します。

このメソッドは、SPLインターフェースArrayAccessで必要です。unset($model[$offset])のように使用すると、暗黙的に呼び出されます。

public void offsetUnset ( $offset )
$offset string

要素をunsetするオフセット。

                #[\ReturnTypeWillChange]
public function offsetUnset($offset)
{
    $this->$offset = null;
}

            
on() public メソッド

定義元: 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]);
    }
}

            
onUnsafeAttribute() public メソッド

定義元: yii\base\Model::onUnsafeAttribute()

このメソッドは、安全でない属性が大量に代入されるときに呼び出されます。

デフォルトの実装では、YII_DEBUGがオンの場合は警告メッセージをログに記録します。それ以外の場合は何も行いません。

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

安全でない属性名。

$value mixed

属性値。

                public function onUnsafeAttribute($name, $value)
{
    if (YII_DEBUG) {
        Yii::debug("Failed to set unsafe attribute '$name' in '" . get_class($this) . "'.", __METHOD__);
    }
}

            
resolveFields() protected メソッド

定義元: yii\base\ArrayableTrait::resolveFields()

toArray() によってどのフィールドを返すことができるかを決定します。

このメソッドは、まず指定されたフィールドからルートフィールドを抽出します。次に、要求されたルートフィールドをfields()extraFields()で宣言されたフィールドと照らし合わせて、どのフィールドを返すことができるかを判断します。

protected array resolveFields ( array $fields, array $expand )
$fields array

エクスポート用に要求されているフィールド。

$expand array

エクスポート用に要求されている追加のフィールド。

return array

エクスポートされるフィールドのリスト。配列キーはフィールド名、配列値は対応するオブジェクトプロパティ名またはフィールド値を返すPHPコールバックです。

                protected function resolveFields(array $fields, array $expand)
{
    $fields = $this->extractRootFields($fields);
    $expand = $this->extractRootFields($expand);
    $result = [];
    foreach ($this->fields() as $field => $definition) {
        if (is_int($field)) {
            $field = $definition;
        }
        if (empty($fields) || in_array($field, $fields, true)) {
            $result[$field] = $definition;
        }
    }
    if (empty($expand)) {
        return $result;
    }
    foreach ($this->extraFields() as $field => $definition) {
        if (is_int($field)) {
            $field = $definition;
        }
        if (in_array($field, $expand, true)) {
            $result[$field] = $definition;
        }
    }
    return $result;
}

            
rules() public メソッド

定義元: yii\base\Model::rules()

属性のバリデーションルールを返します。

検証ルールは、属性値が有効かどうかをチェックするためにvalidate()によって使用されます。子クラスは、このメソッドをオーバーライドして、異なる検証ルールを宣言できます。

各ルールは、次の構造を持つ配列です。

[
    ['attribute1', 'attribute2'],
    'validator type',
    'on' => ['scenario1', 'scenario2'],
    //...other parameters...
]

ここで

  • 属性リスト:必須。検証する属性の配列を指定します。単一の属性の場合は、文字列を渡すことができます。
  • バリデータータイプ:必須。使用するバリデーターを指定します。これは、組み込みバリデーター名、モデルクラスのメソッド名、匿名関数、またはバリデータークラス名にすることができます。
  • on:オプション。検証ルールを適用できるシナリオの配列を指定します。このオプションが設定されていない場合、ルールはすべてのシナリオに適用されます。
  • 対応するバリデータープロパティを初期化するために、追加の名前と値のペアを指定できます。可能なプロパティについては、個々のバリデータークラスAPIを参照してください。

バリデーターは、yii\validators\Validatorを拡張するクラスのオブジェクト、または次のシグネチャを持つモデルクラスメソッド(インラインバリデーターと呼ばれる)にすることができます。

// $params refers to validation parameters given in the rule
function validatorName($attribute, $params)

上記の$attributeは現在検証中の属性を指し、$paramsstringバリデーターの場合のmaxなどのバリデーター構成オプションの配列を含みます。現在検証中の属性の値は、$this->$attributeとしてアクセスできます。attributeの前の$に注意してください。これは、変数$attributeの値を取得し、それをアクセスするプロパティの名前として使用しています。

Yiiは、組み込みバリデーターのセットも提供しています。それぞれに、検証ルールを指定するときに使用できるエイリアス名があります。

以下にいくつかの例を示します。

[
    // built-in "required" validator
    [['username', 'password'], 'required'],
    // built-in "string" validator customized with "min" and "max" properties
    ['username', 'string', 'min' => 3, 'max' => 12],
    // built-in "compare" validator that is used in "register" scenario only
    ['password', 'compare', 'compareAttribute' => 'password2', 'on' => 'register'],
    // an inline validator defined via the "authenticate()" method in the model class
    ['password', 'authenticate', 'on' => 'login'],
    // a validator of class "DateRangeValidator"
    ['dateRange', 'DateRangeValidator'],
];

親クラスで定義されたルールを継承するには、子クラスはarray_merge()などの関数を使用して、親ルールと子ルールをマージする必要があることに注意してください。

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

public array rules ( )
return array

バリデーションルール

                public function rules()
{
    return [];
}

            
safeAttributes() public メソッド

定義元: yii\base\Model::safeAttributes()

現在のシナリオで大量代入が安全な属性名を返します。

public string[] safeAttributes ( )
return string[]

安全な属性名

                public function safeAttributes()
{
    $scenario = $this->getScenario();
    $scenarios = $this->scenarios();
    if (!isset($scenarios[$scenario])) {
        return [];
    }
    $attributes = [];
    foreach ($scenarios[$scenario] as $attribute) {
        if (
            $attribute !== ''
            && strncmp($attribute, '!', 1) !== 0
            && !in_array('!' . $attribute, $scenarios[$scenario])
        ) {
            $attributes[] = $attribute;
        }
    }
    return $attributes;
}

            
scenarios() public メソッド

定義元: yii\base\Model::scenarios()

シナリオと対応するアクティブな属性のリストを返します。

アクティブな属性とは、現在のシナリオでバリデーションの対象となる属性のことです。返される配列は次の形式である必要があります

[
    'scenario1' => ['attribute11', 'attribute12', ...],
    'scenario2' => ['attribute21', 'attribute22', ...],
    ...
]

デフォルトでは、アクティブな属性は安全であると見なされ、一括代入できます。属性を一括代入すべきでない場合(したがって安全でないと見なされる場合)、属性の前に感嘆符(例:'!rank')を付けてください。

このメソッドのデフォルト実装は、rules()宣言で見つかったすべてのシナリオを返します。 SCENARIO_DEFAULTという名前の特別なシナリオには、rules()で見つかったすべての属性が含まれます。各シナリオは、そのシナリオに適用されるバリデーションルールによってバリデーションされる属性と関連付けられます。

public array scenarios ( )
return array

シナリオとそれに対応するアクティブな属性のリスト。

                public function scenarios()
{
    $scenarios = [self::SCENARIO_DEFAULT => []];
    foreach ($this->getValidators() as $validator) {
        foreach ($validator->on as $scenario) {
            $scenarios[$scenario] = [];
        }
        foreach ($validator->except as $scenario) {
            $scenarios[$scenario] = [];
        }
    }
    $names = array_keys($scenarios);
    foreach ($this->getValidators() as $validator) {
        if (empty($validator->on) && empty($validator->except)) {
            foreach ($names as $name) {
                foreach ($validator->attributes as $attribute) {
                    $scenarios[$name][$attribute] = true;
                }
            }
        } elseif (empty($validator->on)) {
            foreach ($names as $name) {
                if (!in_array($name, $validator->except, true)) {
                    foreach ($validator->attributes as $attribute) {
                        $scenarios[$name][$attribute] = true;
                    }
                }
            }
        } else {
            foreach ($validator->on as $name) {
                foreach ($validator->attributes as $attribute) {
                    $scenarios[$name][$attribute] = true;
                }
            }
        }
    }
    foreach ($scenarios as $scenario => $attributes) {
        if (!empty($attributes)) {
            $scenarios[$scenario] = array_keys($attributes);
        }
    }
    return $scenarios;
}

            
setAttributeLabel() public メソッド (バージョン 2.0.35 以降で利用可能)

単一の属性のラベルを設定します。

public $this setAttributeLabel ( $attribute, $label )
$attribute string

属性名。

$label string

属性ラベルの値。

                public function setAttributeLabel($attribute, $label)
{
    $this->_attributeLabels[$attribute] = $label;
    return $this;
}

            
setAttributeLabels() public メソッド (バージョン 2.0.35 以降で利用可能)

すべての属性のラベルを設定します。

public $this setAttributeLabels ( array $labels = [] )
$labels string[]

属性ラベル。

                public function setAttributeLabels(array $labels = [])
{
    $this->_attributeLabels = $labels;
    return $this;
}

            
setAttributes() public メソッド

定義元: yii\base\Model::setAttributes()

大量に属性値を設定します。

参照:

public void setAttributes ( $values, $safeOnly true )
$values array

モデルに代入される属性値(name => value)。

$safeOnly boolean

代入を安全な属性に対してのみ行うかどうか。安全な属性とは、現在の$scenarioでバリデーションルールに関連付けられている属性のことです。

                public function setAttributes($values, $safeOnly = true)
{
    if (is_array($values)) {
        $attributes = array_flip($safeOnly ? $this->safeAttributes() : $this->attributes());
        foreach ($values as $name => $value) {
            if (isset($attributes[$name])) {
                $this->$name = $value;
            } elseif ($safeOnly) {
                $this->onUnsafeAttribute($name, $value);
            }
        }
    }
}

            
setScenario() public メソッド

定義元: yii\base\Model::setScenario()

モデルのシナリオを設定します。

このメソッドは、シナリオが存在するかどうかをチェックしないことに注意してください。 validate()メソッドがこのチェックを実行します。

public void setScenario ( $value )
$value string

このモデルが使用されているシナリオ。

                public function setScenario($value)
{
    $this->_scenario = $value;
}

            
toArray() public メソッド

定義元: yii\base\ArrayableTrait::toArray()

モデルを配列に変換します。

このメソッドは、最初にresolveFields()を呼び出すことによって、結果の配列に含めるフィールドを識別します。次に、これらのフィールドを持つモデルを配列に変換します。 $recursiveがtrueの場合、埋め込まれたオブジェクトも配列に変換されます。埋め込まれたオブジェクトがyii\base\Arrayableの場合、それぞれのネストされたフィールドが抽出され、toArray()に渡されます。

モデルがyii\web\Linkableインターフェースを実装している場合、結果の配列には、インターフェースで指定されたリンクのリストを参照する_link要素も含まれます。

public array toArray ( array $fields = [], array $expand = [], $recursive true )
$fields array

リクエストされているフィールド。 空の場合、または '*' が含まれている場合は、fields()で指定されたすべてのフィールドが返されます。フィールドは、ドット (.) で区切ってネストできます。例:item.field.sub-field ネストされたフィールドを抽出するには$recursiveがtrueである必要があります。 $recursiveがfalseの場合、ルートフィールドのみが抽出されます。

$expand array

エクスポート用にリクエストされている追加フィールド。 extraFields()で宣言されたフィールドのみが考慮されます。 展開もドット (.) で区切ってネストできます。例:item.expand1.expand2 ネストされた展開を抽出するには$recursiveがtrueである必要があります。 $recursiveがfalseの場合、ルート展開のみが抽出されます。

$recursive boolean

埋め込まれたオブジェクトの配列表現を再帰的に返すかどうか。

return array

オブジェクトの配列表現

                public function toArray(array $fields = [], array $expand = [], $recursive = true)
{
    $data = [];
    foreach ($this->resolveFields($fields, $expand) as $field => $definition) {
        $attribute = is_string($definition) ? $this->$definition : $definition($this, $field);
        if ($recursive) {
            $nestedFields = $this->extractFieldsFor($fields, $field);
            $nestedExpand = $this->extractFieldsFor($expand, $field);
            if ($attribute instanceof Arrayable) {
                $attribute = $attribute->toArray($nestedFields, $nestedExpand);
            } elseif ($attribute instanceof \JsonSerializable) {
                $attribute = $attribute->jsonSerialize();
            } elseif (is_array($attribute)) {
                $attribute = array_map(
                    function ($item) use ($nestedFields, $nestedExpand) {
                        if ($item instanceof Arrayable) {
                            return $item->toArray($nestedFields, $nestedExpand);
                        } elseif ($item instanceof \JsonSerializable) {
                            return $item->jsonSerialize();
                        }
                        return $item;
                    },
                    $attribute
                );
            }
        }
        $data[$field] = $attribute;
    }
    if ($this instanceof Linkable) {
        $data['_links'] = Link::serialize($this->getLinks());
    }
    return $recursive ? ArrayHelper::toArray($data) : $data;
}

            
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);
}

            
undefineAttribute() publicメソッド

属性を未定義にします。

public void undefineAttribute ( $name )
$name string

属性名。

                public function undefineAttribute($name)
{
    unset($this->_attributes[$name]);
}

            
validate() publicメソッド

定義元: yii\base\Model::validate()

データ検証を実行します。

このメソッドは、現在の$scenarioに適用可能なバリデーションルールを実行します。ルールが現在適用可能かどうかを判断するために、以下の基準が使用されます。

  • ルールは、現在のシナリオに関連する属性に関連付けられている必要があります。
  • ルールは現在のシナリオで有効である必要があります。

このメソッドは、実際のバリデーションの前後にそれぞれbeforeValidate()afterValidate()を呼び出します。beforeValidate()がfalseを返した場合、バリデーションはキャンセルされ、afterValidate()は呼び出されません。

バリデーション中に見つかったエラーは、getErrors()getFirstErrors()、およびgetFirstError()を介して取得できます。

public boolean validate ( $attributeNames null, $clearErrors true )
$attributeNames string[]|string|null

バリデーションされる属性の名前または属性の名前のリスト。このパラメータが空の場合、適用可能なバリデーションルールにリストされているすべての属性がバリデーションされることを意味します。

$clearErrors boolean

バリデーションを実行する前にclearErrors()を呼び出すかどうか

return boolean

エラーなしでバリデーションが成功したかどうか。

throws yii\base\InvalidArgumentException

現在のシナリオが不明な場合。

                public function validate($attributeNames = null, $clearErrors = true)
{
    if ($clearErrors) {
        $this->clearErrors();
    }
    if (!$this->beforeValidate()) {
        return false;
    }
    $scenarios = $this->scenarios();
    $scenario = $this->getScenario();
    if (!isset($scenarios[$scenario])) {
        throw new InvalidArgumentException("Unknown scenario: $scenario");
    }
    if ($attributeNames === null) {
        $attributeNames = $this->activeAttributes();
    }
    $attributeNames = (array)$attributeNames;
    foreach ($this->getActiveValidators() as $validator) {
        $validator->validateAttributes($this, $attributeNames);
    }
    $this->afterValidate();
    return !$this->hasErrors();
}

            
validateData() public staticメソッド

指定されたバリデーションルールを使用して、指定されたデータを検証します。

このメソッドは、DynamicModelインスタンスを作成し、バリデーションするデータを投入し、指定されたバリデーションルールを作成し、これらのルールを使用してデータをバリデーションします。

public static static validateData ( array $data, $rules = [] )
$data array

バリデーションされるデータ(名前と値のペア)。

$rules array

バリデーションルール。このパラメータの形式については、yii\base\Model::rules()を参照してください。

return yii\base\DynamicModel

バリデーションされるデータを含むモデルインスタンス。

throws yii\base\InvalidConfigException

バリデーションルールが正しく指定されていない場合。

                public static function validateData(array $data, $rules = [])
{
    /* @var $model DynamicModel */
    $model = new static($data);
    if (!empty($rules)) {
        $validators = $model->getValidators();
        foreach ($rules as $rule) {
            if ($rule instanceof Validator) {
                $validators->append($rule);
                $model->defineAttributesByValidator($rule);
            } elseif (is_array($rule) && isset($rule[0], $rule[1])) { // attributes, validator type
                $validator = Validator::createValidator($rule[1], $model, (array)$rule[0], array_slice($rule, 2));
                $validators->append($validator);
                $model->defineAttributesByValidator($validator);
            } else {
                throw new InvalidConfigException('Invalid validation rule: a rule must specify both attribute names and validator type.');
            }
        }
    }
    $model->validate();
    return $model;
}

            
validateMultiple() public staticメソッド

定義元: yii\base\Model::validateMultiple()

複数のモデルを検証します。

このメソッドはすべてのモデルをバリデーションします。バリデーションされるモデルは、同じ型または異なる型である可能性があります。

public static boolean validateMultiple ( $models, $attributeNames null )
$models array

バリデーションされるモデル

$attributeNames array|null

バリデーションされる属性の名前のリスト。このパラメータが空の場合、適用可能なバリデーションルールにリストされているすべての属性がバリデーションされることを意味します。

return boolean

すべてのモデルが有効かどうか。1つ以上のモデルにバリデーションエラーがある場合は、Falseが返されます。

                public static function validateMultiple($models, $attributeNames = null)
{
    $valid = true;
    /* @var $model Model */
    foreach ($models as $model) {
        $valid = $model->validate($attributeNames) && $valid;
    }
    return $valid;
}