moderntribe / square1-field-models
ACF 的数据传输对象(模型)和集合
4.2.0
2022-10-25 16:44 UTC
Requires
- php: >=7.4
- ext-json: *
- spatie/data-transfer-object: ^2.8
README
利用 Spatie 数据传输对象 v2 为 ACF 字段提供模型,支持数组,避免需要记住这些字段结构,并为您的 IDE 提供自动完成功能。
用法
简单地创建一个扩展 Field_Model 的类,设置您的属性和类型以匹配 ACF 获取字段数据数组时返回的内容,将数组传递给模型,它将自动填充,让您可以使用类属性来访问数据。
示例
想象您有一个 ACF 用户字段。只需将 ACF 字段数据传递给现有的 用户模型,例如
$user = new \Tribe\Libs\Field_Models\Models\User( (array) get_field( 'user_field' ) ); echo $user->ID; // e.g. 22 echo $user->user_firstname; // e.g. Steve // etc...
您还可以创建集合,它将接受 ACF 重复字段 数据。在上面的用户示例中进一步扩展,假设您有一个用户字段的重复字段,只需将重复字段数据直接传递给集合的创建方法
$user_collection = \Tribe\Libs\Field_Models\Collections\User_Collection::create( (array) get_field( 'user_repeater' ) ); foreach ( $user_collection as $user ) { echo $user->ID; }
要求
- PHP 7.4+
- 高级自定义字段或重复字段的 PRO 版本