вставка массива в базу данных laravel 4.2

Пожалуйста, мне нужна помощь, я хочу вставить таблицу, первые строки которой фиксированы
а остальные добавлены jQuery.

Мой стол находится в центре формы.

Моя проблема на уровне тогоforeach, что я хочу использовать для регистрации моих значений в моей БД я думаю, что моя ошибка заключается в том, что я не знаю, как использовать foreachв контроллере!!!

Мой взгляд:

<table class="mws-table" id="tableFeesCompSheet">
  <thead>
    <tr>
      <th>{{Lang::get('labels.fees_comp_sheet_labels.Max_interval_amount')}}</th>
      <th>{{Lang::get('labels.fees_comp_sheet_labels.Law5_fixed_amount')}}</th>
      <th>{{Lang::get('labels.fees_comp_sheet_labels.Law5_rate')}}</th>
      <th>{{Lang::get('labels.fees_comp_sheet_labels.Law5_min_amount')}}</th>
      <th>{{Lang::get('labels.fees_comp_sheet_labels.Law5_max_amount')}}</th>
      <th>{{Lang::get('labels.fees_comp_sheet_labels.Law5_grace_amount')}}</th>
      <th class="nosort">{{Lang::get('labels.action')}}</th>
    </tr>
  </thead>
  <tbody>

    <tr id="myTableRow">
      <td>
        <input type="text" name="max_interval_amount[]" class="amount no-padding" value="{{Input::get('max_interval_amount')}}" required="" data-parsley-type="number">
      </td>
      <td>
        <input type="text" id="law5_fixed_amount" name="law5_fixed_amount[]" class="amount no-padding" value="{{Input::get('law5_fixed_amount')}}" required="" data-parsley-type="number">
      </td>
      <td>
        <input type="text" id="law5_rate" name="law5_rate[]" class="amount no-padding" value="{{Input::get('law5_rate')}}" required="" data-parsley-type="number">
      </td>
      <td>
        <input type="text" id="law5_min_amount" name="law5_min_amount[]" class="amount no-padding" value="{{Input::get('law5_min_amount')}}" required="" data-parsley-type="number">
      </td>
      <td>
        <input type="text" id="law5_max_amount" name="law5_max_amount[]" class="amount no-padding" value="{{Input::get('law5_max_amount')}}" required="" data-parsley-type="number">
      </td>
      <td>
        <input type="text" id="law5_grace_amount" name="law5_grace_amount[]" class="amount no-padding" value="{{Input::get('law5_grace_amount')}}" required="" data-parsley-type="number">
      </td>
      <td>
        <div rel="tooltip" data-placement="bottom" id="add" class="btn" data-original-title="Ajouter une ligne">
          <i class="icon-edit"></i>
        </div>
      </td>
    </tr>

  </tbody>
</table>

Код jQuery для добавления новой строки в массив:

function deleteRecord(ele) {
    $(ele.parentNode.parentNode).remove();
}
$("#delete" ).click(function deleteRow() {
    // console.log('walid');
    //  $("tr:has(input:checked)").remove();
});

$('#send').click(function(){
    $.each($('.field'), function() {
        $('<input />').attr('type', 'hidden')
            .attr('name', $(this).attr('name'))
            .attr('value', $(this).val())
            .appendTo('#add_fees_rules');
    }
);

$( "#add_fees_rules" ).submit();
return false;
});

и мой контроллер :

$fees_rules_comp_sheet= input::all();

foreach ($fees_rules_comp_sheet as $fees_comp_sheet) {

    $fees_comp_sheet = new FeesCompSheet();
    $fees_comp_sheet->fees_comp_sheet_id = $this->getFeesCompSheetId();
    $fees_comp_sheet->max_interval_amount = Input::get('max_interval_amount');
    $fees_comp_sheet->law5_fixed_amount = Input::get('law5_fixed_amount');
    $fees_comp_sheet->law5_rate = Input::get('law5_rate');
    $fees_comp_sheet->law5_min_amount = Input::get('law5_min_amount');
    $fees_comp_sheet->law5_max_amount = Input::get('law5_max_amount');
    $fees_comp_sheet->law5_grace_amount = Input::get('law5_grace_amount');
    $fees_comp_sheet->save();

1 ответ

  1. На основании предоставленной Вами информации могут возникнуть некоторые потенциальные проблемы. Точно сказать не могу. Потому что вы не предоставили подробное сообщение об ошибке.

    Сначала проверьте файл моделиFeesCompSheet. Ошибка может возникнуть MassAssignmentException, если у вас нет следующей строки кода.

      protected $fillable = ['fees_comp_sheet_id','max_interval_amount',
                             'law5_fixed_amount','law5_rate','law5_min_amount',
                             'law5_max_amount','law5_grace_amount']; 
    

    Во-вторых, удалите []nameатрибут типа ввода.

    например

    <input type="text" id="law5_rate" name="law5_rate" class="amount no-padding" value="{{Input::get('law5_rate')}}" required="" data-parsley-type="number">
    

    Поправьте меня, если я ошибаюсь. Input::get('law5_rate');значение nameатрибута из типа ввода. Не idатрибут.