Axios上的HTTP请求500内部服务器错误

时间:2018-11-25 16:21:48

标签: php laravel vue.js axios

我在将更新的数据提交到数据库时遇到问题。 它接受所有输入,但是当我尝试保存它时会收到错误消息。

这是我的路线:

Route::resource('Sales', 'SalesController');

我如何放置数据:

axios.put('/Sales/' + id)

我的更新方法:

public function update(Request $req, $id){
$sales = Sales::find($id);
$sales = new Sales;
$sales->itemQty = $req['itemQty'];
$sales->itemID = $req['itemID'];
$sales->save();
}

我的编辑表单:

<div class="card-body"  v-for="(sale, index) in sales" :key="sale.id">
              <form action="/Sales" method="post">
                  <div>
                    <input type="hidden" name="_token" :value="csrf">
                      <div class="form-group">

                        <div class="form-inline">
                          <div class="mr-3 mt-2">Item ID: </div>
                          <input class="form-control mt-2 col" name="itemID[]" maxlength="12" v-model="sale.itemID">
                        </div>

                        <div class="form-inline">
                          <div class="mr-2 mt-2">Quantity: </div>
                          <input type="number" min="1" class="form-control mt-2 col" placeholder="Quantity" name="itemQty[]" v-model="sale.itemQty">
                        </div>

                      </div>
                  </div>
                  <div class="updatesale" style="margin:0 auto; text-align: center;">
                    <button class="btn btn-success mt-2" type="button" name="button" v-on:click="updateSalesRec(sale.id)">Update</button>
                  </div>
              </form>
            </div>

这是怎么了?

1 个答案:

答案 0 :(得分:0)

找到Sales对象后,您无需为其创建另一个实例:

public function update(Request $req, $id){
    $sales = Sales::find($id);
    $sales->itemQty = $req['itemQty'];
    $sales->itemID = $req['itemID'];
    $sales->save();
}

我不认为您打算将数据按数组提交。因此,从输入字段名称中删除[]

<div class="card-body"  v-for="(sale, index) in sales" :key="sale.id">
          <form action="/Sales" method="post">
              <div>
                <input type="hidden" name="_token" :value="csrf">
                  <div class="form-group">

                    <div class="form-inline">
                      <div class="mr-3 mt-2">Item ID: </div>
                      <input class="form-control mt-2 col" name="itemID" maxlength="12" v-model="sale.itemID">
                    </div>

                    <div class="form-inline">
                      <div class="mr-2 mt-2">Quantity: </div>
                      <input type="number" min="1" class="form-control mt-2 col" placeholder="Quantity" name="itemQty" v-model="sale.itemQty">
                    </div>

                  </div>
              </div>
              <div class="updatesale" style="margin:0 auto; text-align: center;">
                <button class="btn btn-success mt-2" type="button" name="button" v-on:click="updateSalesRec(sale.id)">Update</button>
              </div>
          </form>
        </div>

希望这很有用。