<i id='BmDJI'><tr id='BmDJI'><dt id='BmDJI'><q id='BmDJI'><span id='BmDJI'><b id='BmDJI'><form id='BmDJI'><ins id='BmDJI'></ins><ul id='BmDJI'></ul><sub id='BmDJI'></sub></form><legend id='BmDJI'></legend><bdo id='BmDJI'><pre id='BmDJI'><center id='BmDJI'></center></pre></bdo></b><th id='BmDJI'></th></span></q></dt></tr></i><div id='BmDJI'><tfoot id='BmDJI'></tfoot><dl id='BmDJI'><fieldset id='BmDJI'></fieldset></dl></div>
          <bdo id='BmDJI'></bdo><ul id='BmDJI'></ul>
      1. <tfoot id='BmDJI'></tfoot>
      2. <legend id='BmDJI'><style id='BmDJI'><dir id='BmDJI'><q id='BmDJI'></q></dir></style></legend>
      3. <small id='BmDJI'></small><noframes id='BmDJI'>

        如何在 Laravel 上更新数据透视表?

        时间:2023-09-23

          <i id='50Iha'><tr id='50Iha'><dt id='50Iha'><q id='50Iha'><span id='50Iha'><b id='50Iha'><form id='50Iha'><ins id='50Iha'></ins><ul id='50Iha'></ul><sub id='50Iha'></sub></form><legend id='50Iha'></legend><bdo id='50Iha'><pre id='50Iha'><center id='50Iha'></center></pre></bdo></b><th id='50Iha'></th></span></q></dt></tr></i><div id='50Iha'><tfoot id='50Iha'></tfoot><dl id='50Iha'><fieldset id='50Iha'></fieldset></dl></div>
        1. <legend id='50Iha'><style id='50Iha'><dir id='50Iha'><q id='50Iha'></q></dir></style></legend>
            <tbody id='50Iha'></tbody>

            <small id='50Iha'></small><noframes id='50Iha'>

              <bdo id='50Iha'></bdo><ul id='50Iha'></ul>

                  <tfoot id='50Iha'></tfoot>
                  本文介绍了如何在 Laravel 上更新数据透视表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我使用 Laravel 5.3

                  I use laravel 5.3

                  我有 3 个表:表产品、表类别和表 products_categories

                  I have 3 table : table product, table category and table products_categories

                  表产品:id、名称等

                  表格类别:id、名称等

                  table category : id, name, etc

                  表 products_categories : id, product_id, category_id

                  table products_categories : id, product_id, category_id

                  在模型产品中,我有这样的方法:

                  In model product, I have method this :

                  public function categories()
                  {
                      return $this->belongsToMany(Category::class, 'products_categories', 'product_id', 'category_id')
                                  ->withPivot('id')
                                  ->withTimestamps();
                  }
                  

                  所以 1 个产品有多个类别

                  So 1 product have many category

                  我的代码是这样的

                  例如 $param['category'] 像这样:

                  For example $param['category'] like this :

                  数组 (['category1'] => 4['category2'] => 11['category3'] => 18 )

                  Array ( ['category1'] => 4 ['category2'] => 11 ['category3'] => 18 )

                  $product_id = 1

                  $product_id = 1

                  foreach ($param['category'] as $category) {
                      Product::find($product_id)
                          ->categories()
                          ->attach(
                              $category, 
                              []
                          );
                  }
                  

                  它用于在数据透视表上添加类别并且它有效

                  It used to add category on the pivot table and it works

                  但是如果我更新数据透视表上的类别,它就不起作用

                  But if I update category on the pivot table, it does not work

                  我是这样尝试的:

                  比如之前这样编辑过的分类

                  For example the category previously edited like this

                  $param['category'] =

                  $param['category'] =

                  数组 (['category1'] => 5['category2'] => 12['category3'] => 19 )

                  Array ( ['category1'] => 5 ['category2'] => 12 ['category3'] => 19 )

                  $product_id = 1

                  $product_id = 1

                  以及更新数据透视表数据的代码如下:

                  And the code to update data on the pivot table like this :

                  foreach ($param['category'] as $category) {
                      Product::find($product_id)
                             ->categories()
                             ->wherePivot('product_id', $product_id)
                             ->updateExistingPivot($category, ['category_id' => $category]);
                  }
                  

                  未成功更新字段类别

                  我该如何解决?

                  推荐答案

                  尝试使用 sync() 函数

                  Try to use the sync() function

                  Product::find($product_id)->categories()->sync($array_of_categories_id)
                  

                  这篇关于如何在 Laravel 上更新数据透视表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:Laravel 查询多对多 下一篇:Laravel Eloquent ORM 中的多租户

                  相关文章

                  最新文章

                  <tfoot id='MtUHd'></tfoot>

                  1. <small id='MtUHd'></small><noframes id='MtUHd'>

                    <i id='MtUHd'><tr id='MtUHd'><dt id='MtUHd'><q id='MtUHd'><span id='MtUHd'><b id='MtUHd'><form id='MtUHd'><ins id='MtUHd'></ins><ul id='MtUHd'></ul><sub id='MtUHd'></sub></form><legend id='MtUHd'></legend><bdo id='MtUHd'><pre id='MtUHd'><center id='MtUHd'></center></pre></bdo></b><th id='MtUHd'></th></span></q></dt></tr></i><div id='MtUHd'><tfoot id='MtUHd'></tfoot><dl id='MtUHd'><fieldset id='MtUHd'></fieldset></dl></div>

                        <bdo id='MtUHd'></bdo><ul id='MtUHd'></ul>
                      <legend id='MtUHd'><style id='MtUHd'><dir id='MtUHd'><q id='MtUHd'></q></dir></style></legend>