インターフェース yii\base\Arrayable
Arrayableは、インスタンスのカスタマイズ可能な表現をサポートしたいクラスが実装すべきインターフェースです。
例えば、クラスがArrayableを実装している場合、toArray()を呼び出すことで、このクラスのインスタンスを(埋め込まれたオブジェクトを含めて)配列に変換し、JSON、XMLなどの他のフォーマットに簡単に変換できます。
メソッドfields()とextraFields()を使用すると、実装クラスは、toArray()の結果に、どのデータをどのようにフォーマットして含めるかをカスタマイズできます。
パブリックメソッド
メソッド | 説明 | 定義元 |
---|---|---|
extraFields() | fields()にリストされているものに加えて、toArray()によって返される可能性のある追加フィールドのリストを返します。 | yii\base\Arrayable |
fields() | 特定のフィールドが指定されていない場合に、デフォルトでtoArray()によって返されるフィールドのリストを返します。 | yii\base\Arrayable |
toArray() | オブジェクトを配列に変換します。 | yii\base\Arrayable |
メソッド詳細
fields()にリストされているものに加えて、toArray()によって返される可能性のある追加フィールドのリストを返します。
このメソッドはfields()に似ていますが、このメソッドで宣言されたフィールドのリストは、デフォルトではtoArray()によって返されない点が異なります。リスト内のフィールドが明示的にリクエストされた場合にのみ、toArray()の結果に含まれます。
参考
public abstract array extraFields ( ) | ||
戻り値 | array |
拡張可能なフィールド名またはフィールド定義のリスト。fields()の戻り値の形式を参照してください。 |
---|
public function extraFields();
特定のフィールドが指定されていない場合に、デフォルトでtoArray()によって返されるフィールドのリストを返します。
フィールドは、toArray()によって返される配列内の名前付き要素です。
このメソッドは、フィールド名またはフィールド定義の配列を返す必要があります。前者の場合、フィールド名はオブジェクトのプロパティ名として扱われ、その値がフィールドの値として使用されます。後者の場合、配列のキーはフィールド名である必要があり、配列の値は対応するフィールド定義である必要があり、これはオブジェクトのプロパティ名または対応するフィールド値を返すPHP callableのいずれかになります。callableのシグネチャは次のとおりである必要があります。
function ($model, $field) {
// return field value
}
例えば、次のコードは4つのフィールドを宣言しています。
email
: フィールド名はプロパティ名email
と同じです。;firstName
とlastName
: フィールド名はfirstName
とlastName
であり、それらの値はfirst_name
とlast_name
プロパティから取得されます。;fullName
: フィールド名はfullName
です。その値はfirst_name
とlast_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();
オブジェクトを配列に変換します。
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);
コメントするには、サインアップまたはログインしてください。