chrispecoraro/php-sanity

该软件包的最新版本(dev-main)没有提供许可证信息。

Sanity.io 的实用工具集合

dev-main 2024-05-18 05:53 UTC

This package is auto-updated.

Last update: 2024-09-18 06:35:10 UTC


README

PHP Sanity 是一个 PHP 类,提供方便的实用函数,用于对 https://Sanity.io 架构进行突变。这需要 sanity-php 客户端。 https://github.com/sanity-io/sanity-php

用法

// 实例化

$sanity = new Sanity('1a2b3c4d', 'production',
'skY70CML0Ovm3GfPqQKeLtBNnS....',
'2019-01-29');`

create() 对于从数组或对象创建单个记录非常有用

$arr = ['Tim', 'Jones'];
$sanity->create("employee", $arr, ["firstName","lastName"]);

create() 也与对象一起工作

$sanity->create("employee", (object)$arr,["firstName","lastName"]);

createFromString() 根据分隔的字符串创建单个文档。

$sanity->createFromString("employee",'Ralph|Peters',["firstName","lastName"],'|');

batchCreate() 对于从数组数组或对象导入非常有用

$docs = [
    ['Bob', 'Jones'],
    ['Ron', 'Philips']
];
$sanity->batchCreate("employee", $docs, ["firstName","lastName"]);
$sanity->batchCreate("employee", (object)$docs, ["firstName","lastName"]);

batchCreateFromFile() 对于从分隔文件导入非常有用

// example file:
// records.csv:
//    Bob|Jones
//    Ron|Philips

$sanity->batchCreateFromFile("employee", "./records.csv", ["firstName","lastName"], "|");

copy() 将文档源字段复制到目标字段的值。// 这对于填充字段非常有用

$sanity->copy('employee','telephone','cellular');

attach() 使用引用将文档(通过 id)附加到文档。

$sanity->attach(fieldName: 'group', 
relatedFieldId: '1991fe09-b54c-4e35-9d32-15413863c3b6',
    documentId: 'fb5b618b-47e4-40c7-964b-2e479cb33');

attachImage() 使用文档 ID 作为参数

$sanity->attachImage('/home/bob/Documents/Bob-Photo.jpeg',
    documentId: 'fb5b618b-47e4-40c7-964b-2e479cb33');

attachImage() 也使用作为类属性的文档Id

$sanity->setDocumentId("fb5b618b-47e4-40c7-964b-29cb33c4");
$sanity->attachImage("/home/bob/Documents/avatar.jpg");

attachImage() 也使用图像 URL

$sanity->setDocumentId("fb5b618b-47e4-40c7-964b-279cb33c4");
$sanity->attachImage("https://picsum.photos/400/300");

all() 是一个快捷方式,相当于使用 GROQ 进行获取操作 //$results = $sanity->fetch('*[_type=="menuItem"]');

$results = $sanity->all("employee");

set() 将文档中的单个字段设置为给定值。

$sanity->set("lastName","Jones","fb5b618b-47e4-40c7-964b-2e479cb3c4");

deleteAll() 删除给定架构类型的所有文档。

重要提示:请谨慎操作并创建备份(首先导出数据集)。

$sanity->deleteAll('employee');

deleteById() 根据其 id 删除单个文档。

重要提示:请谨慎操作并创建备份(首先导出数据集)。

$sanity->deleteById('fb5b618b-47e4-40c7-964b-2e479cb33c');