Php 使用Laravel从jquerydatatables向数据库插入行数据键

Php 使用Laravel从jquerydatatables向数据库插入行数据键,php,jquery,laravel,datatable,laravel-5,Php,Jquery,Laravel,Datatable,Laravel 5,我有一个Laravel应用程序,我想在数据库中插入一些记录。在数据库模型中,我有两个表。一个包含常规信息,另一个包含每个月第一个表中每个记录的值。jQuery数据表列出了表1中所有记录的名称。它还有3个输入字段要插入到另一个表中。问题是我不知道如何从第一个数据库表直接从DataTable获取记录的ID 这是jQuery数据表的代码: { data: 'value_code', name: 'value_code' }, { data: 'id', name: 'id'}, { data: 'v

我有一个Laravel应用程序,我想在数据库中插入一些记录。在数据库模型中,我有两个表。一个包含常规信息,另一个包含每个月第一个表中每个记录的值。jQuery数据表列出了表1中所有记录的名称。它还有3个输入字段要插入到另一个表中。问题是我不知道如何从第一个数据库表直接从DataTable获取记录的ID

这是jQuery数据表的代码:

{ data: 'value_code', name: 'value_code' },
{ data: 'id', name: 'id'},
{ data: 'value_workload', name: 'value_workload' },
{
    className: '',
    orderable: false,
    data: function (row, type, val, meta) {
       return '<input name="month[]" data-name"month-' + meta.row + '" class="form-control month" type="month" />'
    }
},
{
    className: '',
    orderable: false,
    data: function (row, type, val, meta) {
       return '<input name="value[]" data-name"value-' + meta.row + '" class="form-control" type="number" />'
    }
},
{
    className: '',
    orderable: false,
    data: function (row, type, val, meta) {
    return '<input name="comment[]" data-name"comment-' + meta.row + '" class="form-control" type="text" />'
    }
},
Reports.php
模型和
Values.php

public function reports(){
    return $this->hasMany('App\Reports');
}
报告controller.php
中,我有:

public function store(Request $request, Value $value)
{

    $months = $request->get('month');
    $comments = $request->get('comment');
    $values = $request->get('value');
    $id = $request->get('id');
    $workload = $request->get('value_workload');

    // initialize return array
    $reports = [];
    // assumes arrays have same number of entries
    foreach($months as $key => $month) {
        $comment = $comments[$key];
        $value = $values[$key];
        // determine number of filled inputs
        $numFilled = !empty($month) + !empty($comment) + !empty($value);
        // if at least two inputs filled
        if ($numFilled >= 2) {
            $date = explode('-', $month);
            $year = isset($date[0]) ? $date[0] : '';
            $month = isset($date[1]) ? $date[1] : '';
            $reports[] = $value->reports()->create([
                'value_id' => $id,
                'value_workload' => $workload,
                'month' => $month,
                'year' => $year,
                'value' => $value,
                'comment' => $comment
            ]);
        }
    }
    return $reports; // this is what has been input! YAY!
}
正如我所说的,问题在于用外键链接来自2个数据库表的记录。不管我怎么努力,我似乎都得不到它。 感谢所有的帮助或提示

编辑:


一种方法是将这些行详细信息添加到输入字段中,但我不知道(尝试过也失败了)如何使用jQuery DataTables进行操作。

我找到了一个解决方案,并将其发布在这里,以便其他面临相同问题的人都能找到它

在jQuery DataTable初始化代码处,在:

columns:[
   { data: 'value_code', name: 'value_code' },
   { data: 'id', name: 'id'},
   { data: 'value_workload', name: 'value_workload' },
   {
       className: '',
       orderable: false,
       data: function (row, type, val, meta) {
           return '<input name="month[]" data-name"month-' + meta.row + '" class="form-control month" type="month" />'
       }
   },
   {
       className: '',
       orderable: false,
       data: function (row, type, val, meta) {
           return '<input name="value[]" data-name"value-' + meta.row + '" class="form-control" type="number" />'
       }
   },
   {
       className: '',
       orderable: false,
       data: function (row, type, val, meta) {
           return '<input name="comment[]" data-name"comment-' + meta.row + '" class="form-control" type="text" />'
       }
   }]
列:[
{数据:'value_code',名称:'value_code'},
{数据:'id',名称:'id'},
{data:'value\u workload',name:'value\u workload'},
{
类名:“”,
可订购:错误,
数据:函数(行、类型、值、元){
返回“”
}
},
{
类名:“”,
可订购:错误,
数据:函数(行、类型、值、元){
返回“”
}
},
{
类名:“”,
可订购:错误,
数据:函数(行、类型、值、元){
返回“”
}
}]
添加以下内容

"columnDefs": [ {
      "targets": [1],
      "render": function ( data, type, full, meta ) {
          return '<input type="text" name="id[]" data-name"id-' + meta.row + '" class="inactive" value="'+data+'" disabled/>';
      }
   }
“columnDefs”:[{
“目标”:[1],
“呈现”:函数(数据、类型、完整、元){
返回“”;
}
}
它会很好的工作

"columnDefs": [ {
      "targets": [1],
      "render": function ( data, type, full, meta ) {
          return '<input type="text" name="id[]" data-name"id-' + meta.row + '" class="inactive" value="'+data+'" disabled/>';
      }
   }