moderntribe/square1-field-models

ACF 的数据传输对象(模型)和集合

4.2.0 2022-10-25 16:44 UTC

This package is auto-updated.

Last update: 2024-08-25 20:28:40 UTC


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 版本