adelf / ventriloquist
2.0.0
2020-08-17 07:40 UTC
Requires
- php: >=7.1
- laravel/framework: ^7.5
Requires (Dev)
- phpunit/phpunit: ^7.1
This package is auto-updated.
Last update: 2024-09-17 16:50:35 UTC
README
为使用支持点符号(如Eloquent)的ORMs的数据库查询提供统一的接口支持
使用示例
{
"values": [
{
"name": "name"
},
{
"name": "last_name"
},
{
"name": "salary"
},
{
"name": "email"
},
{
"name": "vacation",
"select": [
"id",
"start_date",
{
"name": "allowance",
"select": [
"id"
]
}
]
}
]
}
由于Ventriloquist是针对使用消息传递(以响应式方式)的微服务开发的,以下是一个使用JSON格式的示例,假设使用的是JSON消息格式。
以下是一个PHP数组,将生成上述格式的JSON:
array (
0 =>
array (
'name' => 'name',
),
1 =>
array (
'name' => 'last_name',
),
2 =>
array (
'name' => 'salary',
),
3 =>
array (
'name' => 'email',
),
4 =>
array (
'name' => 'vacation',
'select' =>
array (
0 => 'id',
1 => 'start_date',
2 =>
array (
'name' => 'allowance',
'select' =>
array (
0 => 'id',
),
),
),
)
实现
$parser = new Generator(); $parser->query($arrayQuery); $parser->rootModel(new \My\Root\Model()); $parsed = $parser->parse(); return $parsed->eloquentBuilder()->limit(10)->get();