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

利亚姆

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

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

于是就选中复选框此功能会触发,但例如当我说,user 1user 2正在经历这个机能的研究获得加入pivot table只会发送user 2,并且user 1不会得到通过,什么错误?

当我加3级的用户user 1user 2user 3,只能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');
}

刀刃

@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

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"
]

所以1 / 3 / 2应该是user_id=> 1应该是价值。

组00

问题是,它sync被调用了loop3次,因此每次它都同步一个值。您必须在syncex中传递ID数组

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

或者,如果你愿意,你可以使用attach时,contribute==1detachcontribute==0

或者,如果contribute在取消选择用户时不返回输入,而仅在选择用户时返回,则可以尝试:

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel 4.2打开与主数据库的第二个数据库连接

来自分类Dev

如何从Laravel的第二个表中获取相关数据?

来自分类Dev

无法在laravel中通过第二个表数据进行foreach

来自分类Dev

在 Laravel 中创建第二个用户模型

来自分类Dev

Laravel 5->将第二个参数传递给Mail :: send方法

来自分类Dev

迁移Laravel的外部方法中的第二个参数是什么?

来自分类Dev

在Laravel中联接两个表-如何将第二个表数据作为结果的属性

来自分类Dev

如何在Laravel中从第二个模型到第一个模型获取搜索数据?

来自分类Dev

为什么在Laravel中在href上传递第二个变量非常灵活?

来自分类Dev

Laravel迁移不会引用第二个外键

来自分类Dev

我如何从另一台PC访问第二个laravel应用

来自分类Dev

注册第二个组件?Vue.js Laravel6

来自分类Dev

如何从laravel中的route获取第二个参数

来自分类Dev

laravel分页-该值具有第二个参数

来自分类Dev

Laravel的第二个app.css文件的目的是什么?

来自分类Dev

Laravel 5.4 hasManyThrough 带有第二个本地密钥

来自分类Dev

如何在Laravel控制器中将动作处理转发到第二个动作?

来自分类Dev

创建通知时如何在Laravel中使用toArray函数中的第二个值

来自分类Dev

Laravel-Project-Flyer:为用户添加第二个传单后的非对象属性

来自分类Dev

如何在Laravel控制器中将动作处理转发到第二个动作?

来自分类Dev

如何将第二个变量从route.php传递到Laravel 5中的控制器?

来自分类Dev

从表中获取值并在laravel中的同一控制器中更新第二个表

来自分类Dev

Laravel模型未在多租户应用程序中使用分配的连接(第二个连接)

来自分类Dev

合并第二个数据帧中仅包含一列的数据帧

来自分类Dev

根据第二个数据帧汇总一个数据帧

来自分类Dev

numpy数组从第二个数组插入第二个元素

来自分类Dev

集合上的Laravel块将第一个元素作为数组返回,第二个作为对象返回

来自分类Dev

如何在laravel中获得两列值,其中第一个是键,第二个是值?

来自分类Dev

2 个字段的验证 Laravel:第一个是日期选择器,第二个是选择

Related 相关文章

  1. 1

    Laravel 4.2打开与主数据库的第二个数据库连接

  2. 2

    如何从Laravel的第二个表中获取相关数据?

  3. 3

    无法在laravel中通过第二个表数据进行foreach

  4. 4

    在 Laravel 中创建第二个用户模型

  5. 5

    Laravel 5->将第二个参数传递给Mail :: send方法

  6. 6

    迁移Laravel的外部方法中的第二个参数是什么?

  7. 7

    在Laravel中联接两个表-如何将第二个表数据作为结果的属性

  8. 8

    如何在Laravel中从第二个模型到第一个模型获取搜索数据?

  9. 9

    为什么在Laravel中在href上传递第二个变量非常灵活?

  10. 10

    Laravel迁移不会引用第二个外键

  11. 11

    我如何从另一台PC访问第二个laravel应用

  12. 12

    注册第二个组件?Vue.js Laravel6

  13. 13

    如何从laravel中的route获取第二个参数

  14. 14

    laravel分页-该值具有第二个参数

  15. 15

    Laravel的第二个app.css文件的目的是什么?

  16. 16

    Laravel 5.4 hasManyThrough 带有第二个本地密钥

  17. 17

    如何在Laravel控制器中将动作处理转发到第二个动作?

  18. 18

    创建通知时如何在Laravel中使用toArray函数中的第二个值

  19. 19

    Laravel-Project-Flyer:为用户添加第二个传单后的非对象属性

  20. 20

    如何在Laravel控制器中将动作处理转发到第二个动作?

  21. 21

    如何将第二个变量从route.php传递到Laravel 5中的控制器?

  22. 22

    从表中获取值并在laravel中的同一控制器中更新第二个表

  23. 23

    Laravel模型未在多租户应用程序中使用分配的连接(第二个连接)

  24. 24

    合并第二个数据帧中仅包含一列的数据帧

  25. 25

    根据第二个数据帧汇总一个数据帧

  26. 26

    numpy数组从第二个数组插入第二个元素

  27. 27

    集合上的Laravel块将第一个元素作为数组返回,第二个作为对象返回

  28. 28

    如何在laravel中获得两列值,其中第一个是键,第二个是值?

  29. 29

    2 个字段的验证 Laravel:第一个是日期选择器,第二个是选择

热门标签

归档