0 フォロワー

インターフェース yii\base\Arrayable

実装元yii\base\DynamicModel, yii\base\Model, yii\data\ActiveDataFilter, yii\data\DataFilter, yii\db\ActiveRecord, yii\db\BaseActiveRecord
利用可能なバージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/base/Arrayable.php

Arrayableは、インスタンスのカスタマイズ可能な表現をサポートしたいクラスが実装すべきインターフェースです。

例えば、クラスがArrayableを実装している場合、toArray()を呼び出すことで、このクラスのインスタンスを(埋め込まれたオブジェクトを含めて)配列に変換し、JSON、XMLなどの他のフォーマットに簡単に変換できます。

メソッドfields()extraFields()を使用すると、実装クラスは、toArray()の結果に、どのデータをどのようにフォーマットして含めるかをカスタマイズできます。

パブリックメソッド

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

メソッド 説明 定義元
extraFields() fields()にリストされているものに加えて、toArray()によって返される可能性のある追加フィールドのリストを返します。 yii\base\Arrayable
fields() 特定のフィールドが指定されていない場合に、デフォルトでtoArray()によって返されるフィールドのリストを返します。 yii\base\Arrayable
toArray() オブジェクトを配列に変換します。 yii\base\Arrayable

メソッド詳細

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

extraFields() public abstract method

fields()にリストされているものに加えて、toArray()によって返される可能性のある追加フィールドのリストを返します。

このメソッドはfields()に似ていますが、このメソッドで宣言されたフィールドのリストは、デフォルトではtoArray()によって返されない点が異なります。リスト内のフィールドが明示的にリクエストされた場合にのみ、toArray()の結果に含まれます。

参考

public abstract array extraFields ( )
戻り値 array

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

                public function extraFields();

            
fields() public abstract method

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

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

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

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

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

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

また、toArray()を参照してください。

public abstract array fields ( )
戻り値 array

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

                public function fields();

            
toArray() public abstract メソッド

オブジェクトを配列に変換します。

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

出力配列に含めるべきフィールドです。fields() で指定されていないフィールドは無視されます。このパラメータが空の場合、fields() で指定されたすべてのフィールドが返されます。

$expand array

出力配列に含めるべき追加のフィールドです。extraFields() で指定されていないフィールドは無視されます。このパラメータが空の場合、追加のフィールドは返されません。

$recursive boolean

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

戻り値 array

オブジェクトの配列表現

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