类 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 |
属性详细信息
JSON 类型,表达式应转换为该类型。默认为 null
,表示不会执行显式转换。此属性仅在支持不同 JSON 类型的 DBMS 中出现。例如,PostgreSQL 有 json
和 jsonb
类型。
要编码为 JSON 的值。该值必须与 [\yii\helpers\Json::encode()|Json::encode()]] 输入要求兼容。
方法详细信息
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;
}
另请参阅 $type.
public string|null getType ( ) | ||
返回 | string|null |
JSON 类型 |
---|
public function getType()
{
return $this->type;
}
指定应序列化为 JSON 的数据
public mixed jsonSerialize ( ) | ||
返回 | mixed |
可被 json_encode 序列化的数据,其值为除资源之外的任何类型。 |
---|---|---|
抛出 | 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;
}
注册 或 登录 以评论。