【问题标题】:laravel 7 store multiple values in different row and also another tables in different rowlaravel 7将多个值存储在不同的行中,并将另一个表存储在不同的行中
【发布时间】:2020-12-03 23:54:45
【问题描述】:

**帮帮我?我想输入多个值并存储在具有不同行的数据库中。同时在另一个 2 个不同的表格中插入了一些其他值。我无法对控制器存储部分进行编码,我花了 3 天时间帮助我 **

示例:

在输入表格中,以“表名”(Purchase)

    |   product   quantity     price     manufacturer    |
    |     a           1         12$           xyz        |
    |     b           2         1$             x         |
    |     c           10        10$            y         |

还将选定的 fled 'product' 'quantity' 'price' 这个值插入到“表名”(bill_products)

    |   product   quantity     price    |
    |    a           1         12$      |
    |    b           2         1$       |
    |    c           10        10$      |

还将选定的 fled 'product' 'quantity' 这个值插入“表名”(item_lists)

    |   product   quantity     |
    |    a           1         |
    |    b           2         |
    |    c           10        |

这是我的看法 (purchase\purchase-entry.blade.php)

<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-12">
            <div class="card">
                <div class="card-header">PURCHASE FORM</div>

                <div class="card-body">
            
                @if (Session::has('success'))
                    <div class="alert alert-success">{!! Session::get('success') !!}</div>
                @endif
                @if (Session::has('failure'))
                    <div class="alert alert-danger">{!! Session::get('failure') !!}</div>
                @endif
                         
    <form method="POST"   action="{{route('purchasesave')}}" enctype="multipart/form-data">
 @csrf
<div class="form-row">

    <div class="col-md-4 mb-3">
      <label >product NAME</label>
      <input type="text"  name="product[]"  placeholder="product" value="" required >
    </div>
    <div class="col-md-4 mb-3">
      <label >quantity</label>
      <input type="text"  name="quantity[]"  placeholder="quantity" value="" required >
    </div>
    <div class="col-md-4 mb-3">
      <label >price</label>
      <input type="text"  name="price[]"  placeholder=price" value="" required >
    </div>
    <div class="col-md-4 mb-3">
      <label >manufacturer</label>
      <input type="text"  name="manufacturer[]"  placeholder="manufacturer" value="" required >
    </div>
  </div>
</div>
<button class="btn btn-primary float-right" type="submit">SAVE</button>
</form>

这是我的控制器 (PurchaseController.php),我有 3 个模型(Purchase、Bill_product 和 Item_list)

public function purchasesave(Request $request)
   {

   }

这是路线部分

Route::post('purchasesave', 'PurchaseController@purchasesave')->name('purchasesave');

【问题讨论】:

  • 如果可能,请添加路线代码
  • @Amit Patel 路线代码已更新
  • @Amit Patel 路线代码已更新,请帮助我
  • @user12931578 然后您没有阅读任何文档或自己进行任何研究工作。有人编写你的整个代码库是不可接受的
  • @Aless55 我做了研究。如果我发布我的控制器代码,它会混淆我对每个人的代码,所以我没有更新控制器,如果你有解决方案,请帮忙,#motivate 如果有人学习新东西,如果你有知识与大家分享。请

标签: php laravel


【解决方案1】:

由于您为每个属性传递了一个数组,因此您将能够对其进行迭代。请确保正确验证您的数据。 之后,您可以简单地在同一索引处获取每个数组的项目。 因此,例如索引 0 处的所有项目,因为它们属于一起。

public function purchasesave(Request $request)
   {
     //insert your validation here
    
     foreach($request->product as $k => $p){
       Pruchases::create([
           'product' => $request['product'][$k],
           'quantity' => $request['quantity'][$k],
           'price' => $request['price'][$k],
           'manufacturer' => $request['manufacturer'][$k],
       ]);

       BillProduct::create([
           'product' => $request['product'][$k],
           'quantity' => $request['quantity'][$k],
           'price' => $request['price'][$k],
       ]);
 
       ItemList::create([
           'product' => $request['product'][$k],
           'quantity' => $request['quantity'][$k],
       ]);
     }
   }

如果您不使用模型,您可以简单地使用DBinsert() 替换语句,将数据插入到您的数据库中。

【讨论】:

  • 感谢您的帮助。除了ItemList没有完美更新之外,每件事都运行良好,每次提交表单时它只存储一个iteme。我的表单每次提交都会传递超过 2 个项目,但它存储一个值。
  • @user12931578 嗯,这很奇怪,如果其他两个工作,那么第三个也应该工作。我将ItemList() 更改为ItemList 这是我的错字,也许这可以解决问题。
  • 如果我使用这个 ItemList() 它会显示这样的错误,调用未定义的函数 App\Http\Controllers\ItemList()。如果我使用 ItemList 它只存储一个值
  • @user12931578 是的,那不是问题。你确定结束}毕竟是create语句吗?
  • BillProduct 和 ItemList 也没有存储多个值,是的,我检查了 } 关闭
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 2015-10-26
  • 1970-01-01
  • 2018-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多