elbgoods/eloquent-sync-one-to-many

0.3.0 2020-04-08 12:16 UTC

This package is auto-updated.

Last update: 2024-09-08 21:31:12 UTC


README

此包提供类似于BelongsToMany同步方法的一对多关系的同步功能。

安装

您可以通过composer安装此包

composer require elbgoods/eloquent-sync-one-to-many

用法

使用ID进行同步

$user->tasks()->sync([1, 2, 4]);

使用ID和额外属性进行同步

$user->tasks()->sync([
    1 => ['status' => 'wip', 'priority' => 1],
    4 => ['status' => 'finished', 'priority' => 3],
]);

不分离进行同步

$user->tasks()->syncWithoutDetaching([1, 2, 4]);

// or

$user->tasks()->sync([1, 2, 4], ['detaching' => false]);

同步并将额外属性设置为分离

$user->tasks()->sync(
    [1, 2, 4],
    'set_after_detach' => [
        'status' => 'open',
        'priority' => 0,
    ],
);

使用给定键作为ID的值进行同步

$user->tasks()->sync([
    ['task_id' => 1, 'status' => 'wip', 'priority' => 1],
    ['task_id' => 4, 'status' => 'finished', 'priority' => 3],
], [foreign_id_key => 'task_id']);

结果与BelongsToMany的同步方法的结果相同,是一个包含attach、detached和updated行的数组。

更新日志

请参阅CHANGELOG以获取更多信息。

贡献

请参阅CONTRIBUTING以获取详细信息。

安全

请参阅SECURITY以获取详细信息。

鸣谢

许可

MIT许可(MIT)。请参阅许可文件以获取更多信息。

TreeWare

您可以自由使用此包,但如果它进入您的生产环境,我们将非常感激您购买或为世界种一棵树。

众所周知,应对气候危机并防止气温上升超过1.5C的最好工具之一是种树。如果您为我的森林做出贡献,您将为当地家庭创造就业机会并恢复野生动物栖息地。

您可以在https://offset.earth/treeware购买树木

有关TreeWare的更多信息,请参阅https://treeware.earth

We offset our carbon footprint via Offset Earth

此包使用Laravel Package Boilerplate生成。