添加完我的所有类后,我按下发送 json 的发送按钮,并提交一个表单(在下面的 ajax 中看到),该表单在进入下图中的模态之前填充.
我正在尝试将数组的数据发送到我的数据库,我通过解码通过 ajax 接收的 json 来获取数组,该 json 是从 DataTable fnGetData() 创建的。
我在控制器中正确接收了 json,并且在对其进行解码时,我留下了一个主数组,其中我有许多数组,每个数组都是一个类(每个类都是数据表的一行)
通过这种方式,我将 json 发送到我的控制器
$.ajax({
url:"{{ route('alumno.horario') }}",
type: 'POST',
dataType:'json',
contentType: 'json',
data: JSON.stringify(p),
contentType: 'application/json; charset=utf-8',
success : function(){
$('#alumno-frm').submit(); // ENVIO FORMULARIO DE ALUMNO MEDIANTE SU RUTA
$("#tablaAgregados").DataTable().clear().draw();
},
error: function(){
//-----
}
});
这样我在控制器中接收并解码 json
public function storeHorario(Request $request){ // GUARDAR HORARIO
$data = json_decode($request->getContent());
dump($data);
// return json_encode($data);
}
这是解码的json的结果
array:2 [
0 => array:10 [
0 => 1
1 => "20/11/2019"
2 => "18:13"
3 => "120 minutos"
4 => "NOMBRE PROFESOR"
5 => "Toyota Yaris 2A-1S-D2"
6 => "<button type="button" class="btn btn-outline-danger elevation-1 btn_eliminar">Quitar</button>"
7 => "47"
8 => "6"
]
1 => array:10 [
0 => 2
1 => "20/11/2019"
2 => "18:13"
3 => "120 minutos"
4 => "NOMBRE PROFESOR"
5 => "Toyota Yaris 2A-1S-D2"
6 => "<button type="button" class="btn btn-outline-danger elevation-1 btn_eliminar">Quitar</button>"
7 => "47"
8 => "6"
]
]
尝试以这种方式将单个课程发送到我的时间表,但这对我不起作用(ajax 返回错误)
public function storeHorario(Request $request){ // GUARDAR HORARIO
$data = json_decode($request->getContent());
$array_data = $data['0'];
$dato2 = $array_data['0'];
$dato3 = $array_data['1'];
$dato4 = $array_data['2'];
$dato5 = 'practica';
$dato6 = $array_data['3'];
$dato7 = $array_data['7'];
$dato8 = $array_data['8'];
$horario = horarioModel::updateOrCreate(
[
'clase' => $dato2,
'fecha' => $dato3,
'hora' => $dato4,
'tipo' => $dato5,
'minutos_bloque' => $dato6,
'id_profesor' => $dato7,
'id_vehiculo' => $dato8
]
);
return json_encode($data);
}
我需要的是从每个数组中捕获数据 0、1、2、3、7、8 和 9,并将它们作为一个类从我的日程安排发送到表中它们各自的字段。
时间表模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class horarioModel extends Model
{
protected $table = 'horario';
protected $primaryKey = 'id_horario';
protected $fillable = [
'id_horario',
'clase',
'fecha',
'hora',
'tipo',
'minutos_bloque',
'id_curso',
'id_profesor',
'id_alumno',
'id_vehiculo',
'id_estado'
];
}
最简单的方法是使用 foreach 遍历数组。按照您已经在使用的逻辑,我想到了这样的事情:
请记住,如果有大量数据,则在 foreach 中进行查询对数据库来说非常重要,因此您应该找到使用 updateOrCreate 之外的另一种方法。
Invalid datetime format: 1366 Incorrect integer value: ''
你DB
等待一个格式Fecha
,你正在传递它String
格式必须是
Y-m-d