如何在 Laravel 中将模型关系与附加透视字段同步?

DDD
发布: 2024-10-19 17:58:30
原创
211 人浏览过

How to Sync ModelRelationships with Additional Pivot Fields in Laravel?

Laravel:带有附加透视字段的 Sync()

在 Laravel 中,sync() 函数用于将模型关系与ID 集。但是,也可以在同步时指定其他枢轴字段。

默认用法:

如 Laravel 文档中所述,您可以同步一组简单的 ID像这样:

<code class="php">$user->roles()->sync([1, 2, 3]);</code>
登录后复制

与数据透视表字段同步:

如果要将特定数据透视表值与 ID 相关联,可以将它们指定为数组:

<code class="php">$user->roles()->sync([
    1 => ['expires' => true]
]);</code>
登录后复制

此示例添加一个数据透视行,并将过期字段设置为 true。

具有自定义数据的多个数据透视记录:

至使用自定义数据透视表数据同步多个模型,您可以使用以下语法:

<code class="php">$user->roles()->sync([
    1 => ['expires' => true],
    2 => ['expires' => false],
    ...
]);</code>
登录后复制

此示例同步两个角色,每个角色都有自己的过期值。

数组输入示例:

如果您以数组形式接收 ID 和数据透视数据,则可以使用 array_combine() 创建同步数据:

<code class="php">$speakers = (array) Input::get('speakers'); // Get related IDs
$pivotData = array_fill(0, count($speakers), ['is_speaker' => true]);
$syncData = array_combine($speakers, $pivotData);

$user->roles()->sync($syncData);</code>
登录后复制

通过遵循这些准则,您可以与 Laravel 中的自定义数据透视字段有效同步数据。

以上是如何在 Laravel 中将模型关系与附加透视字段同步?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!