mnemesong / fit
此包提供构建匹配条件的对象和接口。
Requires
- php: >=7.4
- mnemesong/structure: 0.4.*
- webmozart/assert: 1.11.*
Requires (Dev)
This package is not auto-updated.
Last update: 2023-03-29 06:37:19 UTC
README
- 文档支持两种语言:俄语和英语。
- 文档编写使用两种语言:俄语和英语。
一般描述 / 通用描述
RUS
该包提供对象和接口,用于表达搜索条件(描述从存储库中选取记录的条件)。使用 Fit 构建器(例如 Fit::field('name')->val('=', 'John'))快速构建。
要求 / 需求
- PHP >= 7.4
- Composer >=2.0
安装 / 安装
composer require "mnemesong/fit"
条件 / 条件
RUS
搜索条件表达式 Fit 允许快速表达任何类型的搜索条件。
字段与数组比较 Fit
ENG
它们具有通用形式: Fit::field(string <列名>) ->arr(string <比较运算符>, array <比较数组>)
允许的数组比较运算符
"in"- 检查列中的值是否包含在比较数组中"!in"- 检查列中的值是否不包含在比较数组中
示例
Fit::field("age")->arr("in", [11, 22, 33, 44, 55])
RUS
它们具有通用形式: Fit::field(string <列名>)->arr(string <比较运算符>, array <比较数组>)
用于数组比较的允许运算符
"in"- 检查列值是否在比较数组中"!in"- 检查列值是否不在比较数组中
示例
Fit::field("age")->arr("in", [11, 22, 33, 44, 55])
字段比较 Fit
ENG
它们具有通用形式: Fit::field(string <列名>)->field(string <比较运算符>, string <列名>)
比较表格列允许的运算符
"="- 检查同一表格行中两列的值是否相等"!="- 检查同一表格行中两列的值是否不相等">","!>",">=","<","!<","<="- 比较同一表格行中两列的值
此外,可以指定比较方法
->asStr()- 从左到右逐字符比较 - 默认比较方法。->asNum()- 尝试转换为数字并按数字比较。
示例
Fit::field("index")->field(">", "index")->asNum()
RUS
具有通用形式:Fit::field(string <列名>)->field(string <比较运算符>, string <列名>)
比较表格列允许的运算符
"="- 检查表格同一行中两列的值是否相等"!="- 检查表格同一行中两列的值是否不相等">","!>",">=","<","!<","<="- 比较表格同一行中两列的值
此外,可以指定比较方法
->asStr()- 从左到右逐字符比较 - 默认比较方法。->asNum()- 尝试转换为数字并按数字比较。
示例
Fit::field("index")->field(">", "index")->asNum()
带有标量值的字段比较 / 使用标量值进行比较
ENG
它们具有通用形式:Fit::field(string <列名>)->val(string <比较运算符>, string <字符串值>)
比较标量值允许的运算符
"="- 检查列值与指定字符串值是否相等(NULL安全)"!="- 检查指定字符串值的列值是否不相等(NULL安全)">","!>",">=","<","!<","<="- 将列值与指定值进行比较
此外,可以指定比较方法
->asStr()- 从左到右逐字符比较 - 默认比较方法。->asNum()- 尝试转换为数字并按数字比较。
示例
Fit::field("bank-account")->val("!<", "71239-318941")->asStr()
RUS
它们具有通用形式:Fit::field(string <列名>)->val(string <比较运算符>, string <字符串值>)
比较标量值允许的运算符
"="- 检查列值与指定字符串值是否相等(NULL安全)"!="- 检查列值与指定字符串值是否不相等(NULL安全)">"、"!>"、">="、"<"、"!<"、"<="- 将列值与指定值进行比较
此外,可以指定比较方法
->asStr()- 从左到右逐字符比较 - 默认比较方法。->asNum()- 尝试转换为数字并按数字比较。
示例
Fit::field("bank-account")->val("!<", "71239-318941")->asStr()
一元比较
ENG
它们具有通用形式:Fit::field(string <列名>)->is(string <比较运算符>)
一元比较允许的运算符
"null"- 检查列值是否为 NULL"!null"- 检查列值是否为 null
示例
Fit::field("bank-account")->is("!null")
RUS
它们具有通用形式:Fit::field(string <列名>)->is(string <比较运算符>)
一元比较允许的运算符
"null"- 检查列值是否等于 NULL"!null"- 检查列值是否不等于 NULL
示例
Fit::field("bank-account")->is("!null")
复杂组合条件搜索
ENG
方法:Fit::andThat()、Fit::orThat()帮助从搜索条件中组合复杂逻辑表达式
示例
Fit::andThat([
Fit::field("bank-account")->val("!<", "71239-318941")->asStr(),
Fit::field("name")->is("null")
])
RUS
方法:Fit::andThat()、Fit::orThat()帮助从搜索条件中组合复杂逻辑表达式
示例
Fit::andThat([
Fit::field("bank-account")->val("!<", "71239-318941")->asStr(),
Fit::field("name")->is("null")
])
一元组合条件搜索
ENG
目前,此类表示唯一的否定(NULL-安全)搜索条件:Fit::notThat()
示例
Fit::notThat(Fit::field("bank-account")->val("!<", "71239-318941")->asStr())
RUS
目前,此类表示唯一的否定(NULL-安全)搜索条件:Fit::notThat()
示例
Fit::notThat(Fit::field("bank-account")->val("!<", "71239-318941")->asStr())
将结构转换为 fit 条件
ENG
《Fit::struct()`方法允许您将结构体转换为搜索条件。这在需要检查某个存储中是否存在与特定结构体在许多方面相似的记录时非常有用。
示例
$struct = new Structure(['name' => 'Victoria', 'age' => 21]);
$spec = Fit::struct($struct);
结果将与以下代码等价
$spec = Fit::andThat([
Fit::field('name')->val('=','Victoria')->asStr(),
Fit::field('age')->val('=','21')->asStr(),
]);
RUS
方法《Fit::struct()`可以将结构体转换为搜索条件。这在需要检查某个存储中是否存在与特定结构体在多个方面相似的记录时非常有用。
示例
$struct = new Structure(['name' => 'Victoria', 'age' => 21]);
$spec = Fit::struct($struct);
结果将与以下代码等价
$spec = Fit::andThat([
Fit::field('name')->val('=','Victoria')->asStr(),
Fit::field('age')->val('=','21')->asStr(),
]);