0 フォロワー

クラス yii\db\JsonExpression

継承yii\db\JsonExpression
実装JsonSerializable, yii\db\ExpressionInterface
利用可能なバージョン2.0.14
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/db/JsonExpression.php

クラス JsonExpression は、JSON にエンコードされるべきデータを表します。

例:

new JsonExpression(['a' => 1, 'b' => 2]); // will be encoded to '{"a": 1, "b": 2}'

保護されたプロパティ

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

プロパティ 説明 定義元

公開メソッド

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

メソッド 説明 定義元
__construct() JsonExpression コンストラクタ。 yii\db\JsonExpression
getType() yii\db\JsonExpression
getValue() yii\db\JsonExpression
jsonSerialize() JSON にシリアライズされるべきデータを指定します。 yii\db\JsonExpression

定数

継承された定数を隠す

定数 説明 定義元
TYPE_JSON 'json' yii\db\JsonExpression
TYPE_JSONB 'jsonb' yii\db\JsonExpression

プロパティの詳細

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

$type 保護されたプロパティ

JSON の型。式がキャストされるべき型です。デフォルトは null で、明示的なキャストは実行されません。このプロパティは、異なる JSON 型をサポートする DBMS でのみ使用されます。たとえば、PostgreSQL には json 型と jsonb 型があります。

protected string|null $type null
$value 保護されたプロパティ

JSON にエンコードされる値。値は、[\yii\helpers\Json::encode()|Json::encode()]] の入力要件と互換性がある必要があります。

protected mixed $value null

メソッドの詳細

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

__construct() 公開メソッド

JsonExpression コンストラクタ。

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

public void __construct ( $value, $type null )
$value mixed

JSON にエンコードされる値。値は、[\yii\helpers\Json::encode()|Json::encode()]] の要件と互換性がある必要があります。

$type string|null

JSON の型。yii\db\JsonExpression::$type を参照してください。

                public function __construct($value, $type = null)
{
    if ($value instanceof self) {
        $value = $value->getValue();
    }
    $this->value = $value;
    $this->type = $type;
}

            
getType() 公開メソッド

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

public string|null getType ( )
戻り値 string|null

JSON の型

                public function getType()
{
    return $this->type;
}

            
getValue() 公開メソッド

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

public mixed getValue ( )

                public function getValue()
{
    return $this->value;
}

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

JSON にシリアライズされるべきデータを指定します。

public mixed jsonSerialize ( )
戻り値 mixed

json_encode によってシリアライズ可能なデータ。リソース以外の任意の型の値です。

throws yii\base\InvalidConfigException

JsonExpression が QueryInterface オブジェクトを含む場合

                #[\ReturnTypeWillChange]
public function jsonSerialize()
{
    $value = $this->getValue();
    if ($value instanceof QueryInterface) {
        throw new InvalidConfigException('The JsonExpression class can not be serialized to JSON when the value is a QueryInterface object');
    }
    return $value;
}