yoanbernabeu / airtable-client-bundle
Airtable API 简单客户端
1.1.0
2023-04-02 22:29 UTC
Requires
- php: >=7.4.3
- symfony/config: ^5.0|^6.0
- symfony/dependency-injection: ^5.0|^6.0
- symfony/form: ^5.0|^6.0
- symfony/http-client: ^5.0|^6.0
- symfony/http-kernel: ^5.0|^6.0
- symfony/property-access: ^5.0|^6.0
- symfony/serializer: ^5.0|^6.0
Requires (Dev)
- ext-json: *
- friendsofphp/php-cs-fixer: ^3.0
- phpstan/phpstan: ^1.0
- phpstan/phpstan-beberlei-assert: ^1.0
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpstan/phpstan-strict-rules: ^1.0
- symfony/framework-bundle: ^5.0|^6.0
- symfony/phpunit-bridge: ^5.0|^6.0
README
Airtable 客户端包是一个尝试使 Airtable API 更易于使用的 Symfony 包。
- 从表中检索数据,可选择视图
- 通过 ID 检索记录
安装
Airtable 客户端包需要 PHP 7.4+ 和 Symfony 5.2+。
使用 Composer 和 Symfony Flex 安装此包
composer require yoanbernabeu/airtable-client-bundle
要配置 Airtable 客户端包,请创建一个 airtable_client.yaml 文件在 config/packages/ 中,并包含以下信息
airtable_client: key: id:
要找到您的 Airtable 基础 ID,请访问您的 API 文档 并查看 简介 部分。
要找到您的 Airtable API 密钥,请访问您的 账户选项 并在 API 部分中进行搜索。
用法
查找
use Yoanbernabeu\AirtableClientBundle\AirtableClientInterface; class Foo { public int $id; public string $bar; } class FooController { public function bar(AirtableClientInterface $airtableClient) { $records = $airtableClient->findAll('tableName', 'viewName', Foo::class); foreach($records as $record) { /** @var Foo $foo */ $foo = $record->getFields(); echo $foo->bar; } $airtableClient->findBy('tableName', 'fieldName', 'value', Foo::class); $record = $airtableClient->find('tableName', 'id'); /** @var Foo $foo */ $foo = $record->getFields(); echo $foo->bar; $airtableClient->findLast('tableName', 'fieldName'); $airtableClient->add( 'tableName', [ 'id' => 1, 'bar' => 'lorem ipsum', Foo::class ] ); } // ... }
添加
use Yoanbernabeu\AirtableClientBundle\AirtableClientInterface; class Foo { public int $id; public string $bar; } class FooController { public function bar(AirtableClientInterface $airtableClient) { $airtableClient->add( 'tableName', [ 'id' => 1, 'bar' => 'lorem ipsum', Foo::class ] ); } // ... }
编辑
use Yoanbernabeu\AirtableClientBundle\AirtableClientInterface; class Foo { public int $id; public string $bar; } class FooController { public function bar(AirtableClientInterface $airtableClient) { $airtableClient->update( 'tableName', 'recordId', [ 'id' => 1, 'bar' => 'lorem ipsum', Foo::class ] ); } // ... }
创建表单
use Yoanbernabeu\AirtableClientBundle\AirtableClientInterface; use Symfony\Component\HttpFoundation\Request; class FooController { public function bar(AirtableClientInterface $airtableClient, Request $request) { $form = $airtableClient->createForm([ 'Name' => TextType::class, 'text' => TextType::class, 'Submit' => SubmitType::class ]); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $data = $form->getData(); $airtableClient->add('test', $data); } return $this->render('bar.html.twig', [ 'form' => $form->createView() ]); } // ... }
元数据
通过其 元数据 API 获取 Airtable 的元数据轻松访问
use Yoanbernabeu\AirtableClientBundle\AirtableClientInterface; class FooController { public function bar(AirtableClientInterface $airtableClient) { // Get Metadata for All Tables $tablesMeta = $airtableClient->getTablesMetadata(); // Get Metadata for One Table $tableMeta = $airtableClient->getTableMetadata('TableName'); // ... }
许可证
查看捆绑的 LICENSE 文件。