Laravel Sync 方法仅发送第二个数据

2024-01-20

这段代码应该从数据库中删除所有旧数据,并在添加新数据时(使用sync())

现在我有一个包含用户的项目,并且可以使用复选框将用户链接到项目。

因此,在选中复选框时,此功能将触发,但例如当我这么说时user 1 and user 2正在通过此功能添加到pivot table它只会发送user 2, and user 1打不通,出了什么问题?

当我添加 3 个用户时user 1, user 2, user 3, only user 2将被添加。

控制器

public function update(CreateProjectRequest $request)
{
    if($request->get('contribute'))
    {
        foreach($request->get('contribute') as $k => $contribute)
        {
            if($contribute == 1)
            {
                $project = $this->project->find($request->project_id);
                $project->users()->sync(array($k));

            }
        }
    }

    $project = $this->project->find($request->project_id);
    $project->fill($request->input())->save();

    return redirect('project');
}

Blade

@foreach($users as $user)
            <tr>
                <td>
                    {{$user->firstname}} {{$user->middlename}} {{$user->lastname}}
                </td>
                <td>
                    {!! Form::checkbox('contribute['.$user->id.']', '1', $user->projects->contains('id', $project->id)) !!}
                </td>
            </tr>
@endforeach

On a dd($request->input());在我的更新方法开始时(选择至少 3 个用户),这将得到回报:

  array:9 [▼
  "_method" => "PATCH"
  "_token" => "0uIZNn6zwZjVKfgE0ckhDULeYda0OaLzKVdUgoM8"
  "name" => "Dire Straits"
  "completion_date" => "2015-05-18"
  "DataTables_Table_0_length" => "10"
  "contribute" => array:3 [▼
    1 => "1"
    3 => "1"
    2 => "1"
  ]
  "completed" => "1"
  "active" => "0"
  "project_id" => "11"
]

So 1 / 3 / 2将是user_id and => 1应该是值。


问题是sync被叫进来loop3 次,每次都会同步一个值。你必须传递一个 ids 数组sync ex:

$project->users()->sync([1,3,2]);

或者如果你愿意你可以使用attach when contribute==1 and detach when contribute==0

Or if contribute当取消选择用户时不返回输入,并且仅在选择用户时返回输入,那么您可以尝试:

$this->project->users()->sync(array_keys($request->get('contribute'));

我刚刚注意到您还有另一个错误,除非您通过一次调用更新许多项目,否则您应该将下面的行放在函数的第一行。

$project = $this->project->find($request->project_id);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel Sync 方法仅发送第二个数据 的相关文章

  • 电子商务是否从头开始

    我需要开发一个包含电子商务部分的新网站 我来这里是想从你那里得到一些关于我应该走哪条路的提示 该网站将有一个静态部分 其中包括一些静态页面和用于销售产品的电子商务部分 我是 Django 和 PHP 开发人员 但这是我第一次需要开发电子商务
  • Facebook“赞”按钮回调帮助

    我正在使用此代码进行类似 facebook 的回调 问题是 如果我调用 php 脚本 例如 有人可以看到我的 javascript 并运行此页面 甚至可以向其发送垃圾邮件或在没有先点赞的情况下使用它 我的想法是 我想为每个喜欢该页面的用户提
  • Symfony2,如何向表单添加隐藏的日期类型字段?

    我正在尝试以下场景 In myclassType public function buildForm FormBuilder builder array options builder gt add day hidden gt add da
  • Laravel 5.4 将json保存到数据库

    帮我将 json 保存到数据库 表字段类型 文本 我有带有强制转换数组的模型 class Salesteam extends Model protected casts team members gt array 我想要像这样 index
  • 如何在没有 session_destroy 的情况下销毁 Zend_Session_Namespace

    我使用以下方法在临时会话中存储一些值 job new Zend Session Namespace application 我如何只销毁会话应用无需清除所有会话 要从会话中删除值 请对对象属性使用 PHP 的 unset 函数 假设 job
  • Laravel 读写连接不同步

    我在 Laravel 5 2 应用程序中使用读写 MySQL 连接设置 mysql gt write gt host gt env DB HOST WRITE localhost read gt host gt env DB HOST RE
  • PHP 中的静态类初始值设定项

    我有一个带有一些静态函数的辅助类 类中的所有函数都需要一个 重 初始化函数来运行一次 就好像它是一个构造函数 有实现这一目标的良好实践吗 我唯一想到的就是打电话init函数 如果它已经运行过一次 使用静态 initialized变种 问题是
  • CryptoJS 使用密码加密 AES,但 PHP 解密需要密钥

    我在用CryptoJS https code google com p crypto js AES加密字符串 function doHash msg msg String msg var passphrase aggourakia var
  • 在 mysqli 准备好的语句程序风格中获取最后插入的 id 的正确方法是什么?

    我正在使用 mysqli 准备好的语句在表中插入记录 如下所示 link mysqli connect localhost my user my password world check connection if link printf
  • Apache 子进程已退出,状态为 255

    经过大量的搜索 尝试 修复 等待和哭泣 在我放弃之前 我想为这个错误抓住最后的机会 我们正在奔跑Microsoft Windows Server 2012 Apache 2 4 6 Win64 OpenSSL 1 0 1e PHP 5 5
  • Zend RegEx Validator 的自定义有意义的错误消息

    我正在验证表单中的文本字段 如下所示 name new Zend Form Element Text name name gt setLabel First Name gt setRequired true gt addFilter new
  • 在 PHP 中将整数转换为十六进制值

    如何将PHP中第一类中的数字转换为第二类中的数字 是否有内置函数来转换数字 也是我的标题 将整数转换为十六进制值 甚至正确 class Permission const READ 1 const UPDATE 2 const DELETE
  • 细胞的 fpdf 对齐

    我正在尝试使用生成 PDFfpdf我有一个小问题 我需要有 2 个单元格 如下所示 Address Line 1 Version Address Line 2 1 0 City 06 05 2011 我尝试过使用MultiCell 但没有运
  • Yii 未检测到骆驼案例操作

    伊伊正在给我404 Error如果我声明这样的操作 站点控制器 php public function actionRegisterUser 这就是我在main php label gt Register User url gt site
  • Laravel,控制器中的 Auth::user()

    Laravel 框架 为什么我无法在 laravel 项目的控制器中使用 Auth user 查看用户是否已登录 Session 是否未连接到控制器 HomeController php public function isauthoriz
  • 2 使用我的代码在数组中查询

    我使用滑块来显示我的 WordPress 精选文章 它选择一个自定义类别并返回一定数量的帖子 如何将显示的第一篇帖子设为自定义帖子 我可以直接在滑块代码中添加特定帖子的 ID吗使该帖子首先出现 然后是原始查询返回的其他内容 例如 在页面上
  • Mysql加密/存储敏感数据,

    我的 PHP 网站有以下内容 启用 SSL 饼干 session set cookie params cookieParams lifetime cookieParams path cookieParams domain secure ht
  • 使用 Swift 邮件程序发送邮件时出现错误 501

  • Google Drive 服务帐户上传的位置

    我正在尝试使用服务帐户将文件上传到我的 Google 云端硬盘 当我部署此代码时 我不希望用户给予授权 我希望他们上传到我的帐户 我通过 PHP 使用它 下面是我到目前为止的情况 这段代码是基于官方文档给出的例子 当我运行 php 脚本时
  • 如何统计订单总价?

    我有这些表 Orders id status user id address id 1 await 1 1 products id name price quantity 1 test1 100 5 2 test2 50 5 order p

随机推荐

  • 当闪亮仪表板中存在 menuSubItems 时显示 menuItem 的内容

    有没有一种方法可以在闪亮仪表板的内容窗格中实际显示具有现有 menuSubItems 的 menuItem 的内容 在示例中 我尝试将 tabName charts 添加到菜单项 图表 中 以显示选项卡项 图表 的内容 但是 除了打开菜单并
  • 如何将 Ruby 脚本转为 Web 应用程序

    我目前有一个脚本 可以侦听包含给定关键字的地理定位推文 然后将它们绘制在 Google Fusion Tables 地图上 我不太确定这是如何转移到网络应用程序的 我想要一个界面 用户可以在其中输入一些关键字进行搜索 然后我的应用程序将打开
  • 与单视图应用程序相比,带有 UICollectionView 的 Today Extension 具有不同的行为

    我尝试将集合视图添加到今日扩展 https developer apple com library content documentation General Conceptual ExtensibilityPG Today html指定每
  • 没有 System.Drawing/GDI+ 的 asp.net/c# 中的图像操作

    net 有替代图像处理库吗 我更喜欢托管和开源的东西 我问这个有两个原因 我过去遇到过使用 System Drawing 调试 GDI 错误的困难 我读到 在 ASP NET Web 应用程序中使用 System Drawing 并不是 1
  • Logback + Wildfly 8 - 不正确的模式

    我的 logback wildfly 8 配置有问题 我正在使用简单的 ConsoleAppender appender STDOUT ConsoleAppender encoder PatternLayoutEncoder pattern
  • 获取JPA实体版本的通用方法

    我有一个未知的 JPA 实体 需要知道它的版本 我找不到一种通用的方法来做到这一点 我尝试了元模型 但不知道要传递给 getVersion 方法的内容 Object entity Metamodel metamodel entityMana
  • Mongo 连接泄漏与吗啡

    我有一个Servlet with static Mongo new Mongo and Morphia morphia new Morphia 对象 每一次GET被调用时 我执行以下操作 doGet datastore morphia cr
  • MySQL Workbench 未在钥匙串中保存密码

    使用 Kubuntu 16 10 我将密码保存到 MySQL Workbench 中的密钥环中 检查 将密码存储在钥匙串中 复选框 只要它打开 不要求输入密码 它就可以工作 但是当我重新打开程序时 它会再次提示输入密码 似乎没有多少人有这个
  • 了解“第一个基线”与“基线”自动布局约束

    我创建了如下视图 并使用过添加缺失的约束t 自动添加约束 我是 iOS 世界的新手 我正在尝试配置约束的工作方式 在文档大纲上 我可以看到添加的限制 我点击标签UR尺寸检查员向我展示以下内容 按第一基线与 UL 对齐的约束与按基线与 UL
  • 使用 [NSFileManager URLForUbiquityContainerIdentifier:] 和 [NSFileManager ubiquityIdentityToken] 之间的主要区别是什么?

    我正在尝试将 iCloud 支持添加到我的应用程序中 并且一直在关注 Apple 自己的iCloud 设计指南 http developer apple com library mac documentation General Conce
  • 如何使用过滤函数修复数组布尔错误

    我正在尝试使用过滤器解决布尔错误 我使用过滤数组来解决迭代数组的布尔问题 它适用于一个简单的列表 但是当用于仅从数组中获取大于零的数字时 它再次显示错误 用于填充数组的方法是从标准正态分布中抽取样本 arr2 np array list f
  • 增加显示 HTML 文本的 JTextPane 的字体大小

    假设我有一个显示 HTML 文档的 JTextPane 我希望 按下按钮后 文档的字体大小就会增加 不幸的是 这并不像看起来那么容易 我找到了一种更改整个文档字体大小的方法 但这意味着所有文本都设置为我指定的字体大小 http javate
  • 在 Swift 中将 UnicodeScalar 数组转换为字符串

    我有一个 unicode 标量数组 类型是 UnicodeScalar like let array UnicodeScalar f UnicodeScalar o UnicodeScalar o or let array2 bar uni
  • 出现未定义的参考错误,但 nm 显示符号存在

    我正在使用 libkml 构建一个大型应用程序 我从这里使用 libkml 的 cmake 端口 https github com rashadkm libkml https github com rashadkm libkml 即使该符号
  • 将 SQL SUM 与包含内部 SELECT 的 Case 语句结合使用

    我有两张桌子 一张Orders表包含用户订单列表和OrderShippingCosts表 其中包含基于以下内容的每件商品的运输价格OrderTypeID in the Orders table 我正在运行如下查询来计算总运费 SELECT
  • 如何在 selenium webdriver 中从一个弹出窗口切换到另一个弹出窗口

    我的场景是 主窗口 gt 进行一些活动 单击 保存 按钮 gt 弹出确认窗口 并使用 确定 和 取消 按钮打开 单击确认弹出窗口上的 确定 按钮 gt 使用 确定 按钮打开另一个成功弹出窗口 弹出成功后点击确定按钮 切换到主窗口 PopUp
  • 有限状态机和 FSM 间信令

    对具有本机 因此没有 FSM 生成工具 支持状态机开发的语言的建议执行以及消息 信号的传递 这适用于电信 例如实现这种复杂程度的 FSM 我考虑过 Erlang 但希望得到一些反馈 建议 教程指针 替代方案 特别是基于 Java 的框架 也
  • 如何使用 chrono 包验证我的数据是否是 x 秒前的数据?

    我试图通过查看数据的时间戳来查看我的数据是否是 120 秒旧的 因此我的库项目中有以下小代码正在使用std chrono包裹 uint64 t now duration cast
  • 如何在JavaFX中改变图像的颜色

    我有一个像这样的PNG图像 我想将图像更改为如下所示 我怎样才能在 JavaFX 中做到这一点 由于您不关心它是矢量形状还是位图 因此我将在此处概述使用位图的解决方案 如果您确实想要矢量形状 我相信您需要使用矢量输入才能获得良好的结果 使用
  • Laravel Sync 方法仅发送第二个数据

    这段代码应该从数据库中删除所有旧数据 并在添加新数据时 使用sync 现在我有一个包含用户的项目 并且可以使用复选框将用户链接到项目 因此 在选中复选框时 此功能将触发 但例如当我这么说时user 1 and user 2正在通过此功能添加