我有这样的功能:
information = Event.where(name: 'xyz')
但是,Laravel无法读取我的JSON数据。 Laravel回来了:
information = Blog.where(name: 'xyz')
似乎我的数据(id_petugas和no_rek_pelanggan)没有被该函数读取。
我尝试将我的数据结构更改为:`
model = Event
"#{model}".where(name: 'xyz')
function pemeliharaan(){
var petugas = document.getElementById('petugas').value;
$.ajax({
type: "POST",
url: "http://localhost/sipetan/WebService/public/api/pemeliharaan",
data: "[{'id_petugas':'1','no_rek_pelanggan':'11111'}]",
dataType: "json",
contentType: "application/json"
}).done(function() {
alert('Pemeliharaan dikirim ke database!');
}).fail(function() {
alert("Input yang anda masukkan salah!");
var r=confirm("Ulangi?");
if (r)
{
window.location = "/";
}
else{};
});
}
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'id_pegawai' cannot be null (SQL: insert into `pemeliharaan` (`id_pegawai`, `no_rek_pelanggan`, `jenis`, `latitude`, `longitude`, `catatan`, `updated_at`, `created_at`) values (, , , , , , 2016-06-19 20:54:26, 2016-06-19 20:54:26))
{'id_petugas':'1','no_rek_pelanggan':'11111'}
仍然没有奏效。但是当我尝试使用RESTful客户端时,它可以完美地工作。这是我的laravel控制器:
{'id_petugas':1,'no_rek_pelanggan':11111}
修改
当我在其他函数上使用Dataform到JSON时,它也能正常工作:
[{'id_petugas':1,'no_rek_pelanggan':11111}]
编辑2 (解决了我自己的问题): 但是我将contentType更改为form-data
[{'id_petugas':'1','no_rek_pelanggan':'11111'}]
答案 0 :(得分:1)
您发送的是无效的JSON。您可以通过传递json验证器来证明这一点
你的单引号应该是双引号,反之亦然。
不要手动创建JSON。大多数语言都有序列化方法为你做
尝试
data: JSON.stringify([{'id_petugas':'1','no_rek_pelanggan':'11111'}])
答案 1 :(得分:0)
Dunno如果这些是唯一的分数,但我只是注意到了:
在发送给Laravel的数据集中,还必须有CSFR令牌。这就是为什么我通常在身体之后立即将其作为隐藏输入并在每个ajax请求中使用它的值。
dataType属性的正确格式为:{'id_petugas':1,'no_rek_pelanggan':11111}
对于其他人,我会xdebug该控制器来检查收到的有效数据。
你是否也试过intval()那个ids?
$Pemeliharaan->id_pegawai = intval(Request::input('id_petugas'));