Php 使用Laravel从jquerydatatables向数据库插入行数据键
我有一个Laravel应用程序,我想在数据库中插入一些记录。在数据库模型中,我有两个表。一个包含常规信息,另一个包含每个月第一个表中每个记录的值。jQuery数据表列出了表1中所有记录的名称。它还有3个输入字段要插入到另一个表中。问题是我不知道如何从第一个数据库表直接从DataTable获取记录的ID 这是jQuery数据表的代码: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
{ 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/>';
}
}