Laravel将动态输入插入数据库

时间:2018-01-14 04:52:42

标签: database laravel dynamic

我正在尝试在我的数据库中的多行中保存动态输入。

这是我的表单的一部分,即付款和日期。

                <tr>
                    <td class="col-md-2">
                        {{Form::text('pay[]', '', ['class' => 'form-control number', 'placeholder' => ''])}}
                    </td>
                    <td class="col-md-2">
                        {{Form::text('payDate[]', '', ['class' => 'form-control pDate', 'placeholder' => ''])}}
                    </td>
                    <td class="col-md-2"><a class="deleteRow"></a>
                    </td>
                </tr>

我的动态添加输入的JS代码:

$(document).ready(function () {
var counter = 0;

$("#addrow").on("click", function () {
    var newRow = $("<tr>");
    var cols = "";

    cols += '<td><input type="text" id="field_2" class="form-control" name="pay[]" /></td>';
    cols += '<td><input type="text" class="form-control pDate" name="payDate[]" /></td>';
    cols += '<td><input type="button" class="ibtnDel btn btn-md btn-danger "  value="Delete"></td>';

    newRow.append(cols);
    $("table.order-list").append(newRow);
    counter++;
});

这是我的控制器:

    $input = $request->all();
    for($i=0; $i<= count($input['pay']); $i++) {
        $payment = new Payment;
        $payment->file = $file;
        $prePayment = str_replace(',', '', $request->input('pay'));
        $payment->payment = $prePayment;
        $payment->paymentDate = $request->input('payDate');
        $payment->save();
    }

请你帮我解决这个问题。

目前我收到此错误:

数组到字符串转换(SQL:插入paymentsfilepaymentpaymentDateupdated_atcreated_at)值。 ...

1 个答案:

答案 0 :(得分:1)

可能$request->input('pay')此行导致问题,因为您尝试在此处获取整个数组,而应该获取single对象。

$input = $request->all();
$pays = $request->input('pay');
$paymentDates = $request->input('payDate');
for($i=0; $i< count($input['pay']); $i++) {
    $payment = new Payment;
    $payment->file = $file;
    $prePayment = $pays[$i];
    $payment->payment = str_replace(',','',$prePayment);
    $payment->paymentDate = $paymentDates[$i];
    $payment->save();
}