Class 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]); // 将被编码为 '{"a": 1, "b": 2}'

受保护的属性

隐藏继承的属性

属性类型描述定义在
$type string|null 表达式应该被强制转换成的 JSON 类型. yii\db\JsonExpression
$value mixed 要编码为 JSON 的值. yii\db\JsonExpression

公共方法

隐藏继承的方法

方法描述定义在
__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 protected 属性

表达式应该被强制转换成的 JSON 类型. 默认为null, 表示将不执行任何显示转换. 仅对于支持不同类型的 JSON 的 DBMS 会遇到此属性. 例如, PostgreSQL 具有jsonjsonb类型.

protected string|null $type null
$value protected 属性

要编码为 JSON 的值. 该值必须与 [\yii\helpers\Json::encode()|Json::encode()]] 输入要求兼容.

protected mixed $value null

方法详情

__construct() public 方法

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.

getType() public 方法

参见 $type.

public null|string getType ( )
return null|string

JSON 的类型.

getValue() public 方法

参见 $value.

public mixed getValue ( )
jsonSerialize() public 方法 (可用自版本: 2.0.14.2)

指定应序列化为 JSON 的数据.

public mixed jsonSerialize ( )
return mixed

可以通过json_encode进行序列化的数据, 它是资源以外的任何类型的值.

throws yii\base\InvalidConfigException

当 JsonExpression 包含 QueryInterface 对象时.