CakePHP
  • 文档
    • 书籍
    • API
    • 视频
    • 报告安全问题
    • 隐私政策
    • 标识和商标
  • 商业解决方案
  • 纪念品
  • 公路旅行
  • 团队
  • 社区
    • 社区
    • 参与进来
    • 问题(Github)
    • Bakery
    • 精选资源
    • 培训
    • 聚会
    • 我的 CakePHP
    • CakeFest
    • 时事通讯
    • 领英
    • YouTube
    • 脸书
    • 推特
    • Mastodon
    • 帮助和支持
    • 论坛
    • Stack Overflow
    • IRC
    • Slack
    • 付费支持
CakePHP

C CakePHP 5.1 Chiffon API

  • 项目
    • CakePHP
      • CakePHP
      • Chronos
      • Elastic Search
      • 队列
  • 版本
    • 5.1
      • 5.1
      • 5.0
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

命名空间

  • 全局
  • Cake
    • 缓存
    • 集合
    • 命令
    • 控制台
    • 控制器
    • 核心
    • 数据库
      • 驱动程序
      • 异常
      • 表达式
      • 日志
      • 查询
      • 重试
      • 模式
      • 语句
      • 类型
    • 数据源
    • 错误
    • 事件
    • 表单
    • Http
    • 国际化
    • 日志
    • 邮件
    • 网络
    • ORM
    • 路由
    • 测试套件
    • 实用程序
    • 验证
    • 视图

类 WhenThenExpression

表示具有流畅 API 的 SQL when/then 子句。

命名空间: Cake\Database\Expression

属性摘要

  • $_typeMap protected
    Cake\Database\TypeMap

    在使用条件数组作为 WHEN 值时要使用的类型映射。

  • $hasThenBeenDefined protected
    bool

    是否已定义 THEN 值,例如是否已调用 then()。

  • $then protected
    Cake\Database\ExpressionInterface|object|scalar|null

    THEN 值。

  • $thenType protected
    string|null

    THEN 结果类型。

  • $validClauseNames protected
    list<string>

    可以使用 clause() 方法的子句名称列表。

  • $when protected
    Cake\Database\ExpressionInterface|object|scalar|null

    Then WHEN 值。

  • $whenType protected
    array|string|null

    WHEN 值类型。

方法摘要

  • __clone() public

    克隆内部表达式对象。

  • __construct() public

    构造函数。

  • _castToExpression() protected

    如果类型类实现了 ExpressionTypeInterface,则有条件地将传递的值转换为 ExpressionInterface 对象。否则,返回未修改的值。

  • _requiresToExpressionCasting() protected

    返回一个数组,其中包含需要将值转换为表达式的类型,这些类型来自作为参数传递的类型名称列表。

  • clause() public

    返回给定子句的可用数据。

  • compileNullableValue() protected

    将可空值编译为 SQL。

  • getResultType() public

    返回表达式的结果值类型。

  • inferType() protected

    推断给定值的抽象类型。

  • sql() public

    将节点转换为 SQL 字符串片段。

  • then() public

    设置 THEN 结果值。

  • traverse() public

    递归地遍历表达式的每个部分,针对表达树的每一层级,并执行回调,将当前正在迭代的表达式的实例作为第一个参数传递。

  • when() public

    设置 WHEN 值。

方法详情

__clone() ¶ public

__clone(): void

克隆内部表达式对象。

返回
void

__construct() ¶ public

__construct(Cake\Database\TypeMap|null $typeMap = null)

构造函数。

参数
Cake\Database\TypeMap|null $typeMap optional

在使用条件数组作为 WHEN 值时要使用的类型映射。

_castToExpression() ¶ protected

_castToExpression(mixed $value, string|null $type = null): mixed

如果类型类实现了 ExpressionTypeInterface,则有条件地将传递的值转换为 ExpressionInterface 对象。否则,返回未修改的值。

参数
mixed $value

要转换为 ExpressionInterface 的值

string|null $type optional

类型名称

返回
mixed

_requiresToExpressionCasting() ¶ protected

_requiresToExpressionCasting(array $types): array

返回一个数组,其中包含需要将值转换为表达式的类型,这些类型来自作为参数传递的类型名称列表。

参数
array $types

类型名称列表

返回
array

clause() ¶ public

clause(string $clause): Cake\Database\ExpressionInterface|object|scalar|null

返回给定子句的可用数据。

可用子句

以下子句名称可用

  • when: WHEN 值。
  • then: THEN 结果值。
参数
string $clause

要获取的子句名称。

返回
Cake\Database\ExpressionInterface|object|scalar|null
抛出
InvalidArgumentException
如果给定的子句名称无效。

compileNullableValue() ¶ protected

compileNullableValue(Cake\Database\ValueBinder $binder, Cake\Database\ExpressionInterface|object|scalar|null $value, string|null $type = null): string

将可空值编译为 SQL。

参数
Cake\Database\ValueBinder $binder

要使用的值绑定器。

Cake\Database\ExpressionInterface|object|scalar|null $value

要编译的值。

string|null $type optional

值类型。

返回
string

getResultType() ¶ public

getResultType(): string|null

返回表达式的结果值类型。

返回
string|null
另请参见
WhenThenExpression::then()

inferType() ¶ protected

inferType(mixed $value): string|null

推断给定值的抽象类型。

参数
mixed $value

要推断类型的值。

返回
string|null

sql() ¶ public

sql(Cake\Database\ValueBinder $binder): string

将节点转换为 SQL 字符串片段。

参数
Cake\Database\ValueBinder $binder
返回
string

then() ¶ public

then(Cake\Database\ExpressionInterface|object|scalar|null $result, string|null $type = null): $this

设置 THEN 结果值。

参数
Cake\Database\ExpressionInterface|object|scalar|null $result

结果值。

string|null $type optional

结果类型。如果未提供类型,则将从给定的结果值推断类型。

返回
$this

traverse() ¶ public

traverse(Closure $callback): $this

递归地遍历表达式的每个部分,针对表达树的每一层级,并执行回调,将当前正在迭代的表达式的实例作为第一个参数传递。

参数
Closure $callback
返回
$this

when() ¶ public

when(object|array|string|float|int|bool $when, array<string, string>|string|null $type = null): $this

设置 WHEN 值。

参数
object|array|string|float|int|bool $when

WHEN 值。当使用条件数组时,它必须与 \Cake\Database\Query::where() 兼容。请注意,此参数对于使用用户数据不完全安全,因为用户提供的数组将允许原始 SQL 潜入!如果您计划使用用户数据,则传递单个类型作为 $type 参数(这会强制 $when 值为非数组,然后始终绑定数据),使用条件数组,其中用户数据仅在数组条目的值侧传递,或者自定义绑定!

array<string, string>|string|null $type optional

when 值的类型。使用数组样式条件时为关联数组,否则为字符串。如果未提供类型,则将尝试从值中推断类型。

返回
$this
抛出
InvalidArgumentException
如果 `$when` 参数为空数组。
InvalidArgumentException
如果 `$when` 参数为数组,而 `$type` 参数既不是数组,也不是 null。
InvalidArgumentException
如果 `$when` 参数为非数组值,而 `$type` 参数既不是字符串,也不是 null。
另请参见
有关更详细的用法说明,请参见 CaseStatementExpression::when()。

属性详情

$_typeMap ¶ 受保护的

在使用条件数组作为 WHEN 值时要使用的类型映射。

类型
Cake\Database\TypeMap

$hasThenBeenDefined ¶ 受保护的

是否已定义 THEN 值,例如是否已调用 then()。

类型
bool

$then ¶ 受保护的

THEN 值。

类型
Cake\Database\ExpressionInterface|object|scalar|null

$thenType ¶ 受保护的

THEN 结果类型。

类型
string|null

$validClauseNames ¶ 受保护的

可以使用 clause() 方法的子句名称列表。

类型
list<string>

$when ¶ 受保护的

Then WHEN 值。

类型
Cake\Database\ExpressionInterface|object|scalar|null

$whenType ¶ 受保护的

WHEN 值类型。

类型
array|string|null
OpenHub
Pingping
Linode
  • 商业解决方案
  • 展示
  • 文档
  • 书籍
  • API
  • 视频
  • 报告安全问题
  • 隐私政策
  • 标识和商标
  • 社区
  • 参与进来
  • 问题(Github)
  • Bakery
  • 精选资源
  • 培训
  • 聚会
  • 我的 CakePHP
  • CakeFest
  • 时事通讯
  • 领英
  • YouTube
  • 脸书
  • 推特
  • Mastodon
  • 帮助和支持
  • 论坛
  • Stack Overflow
  • IRC
  • Slack
  • 付费支持

使用 CakePHP API 文档 生成