我无法使用邮递员将数据更新到数据库,即时通讯成功,但是数据库中的数据未更新。
这是我在控制器中的功能:
public function update(Request $request, $id) {
$dbelicpkb = DBeliCPKB::find($id);
if(is_null($dbelicpkb)) {
return response()->json('Spesifikasi Not Found', 404);
}
if($request->tanggal != $dbelicpkb["Tanggal"]){
$dbelicpkb["Tanggal"] = $request->tanggal;
}
if($request->noSuplier != $dbelicpkb["No Suplier CPKB"]){
$dbelicpkb["No Suplier CPKB"] = $request->noSuplier;
}
if($request->kodeBarang != $dbelicpkb["Kode Barang CPKB"]){
$dbelicpkb["Kode Barang CPKB"] = $request->kodeBarang;
}
if($request->jumlah != $dbelicpkb["Jumlah"]){
$dbelicpkb["Jumlah"] = $request->jumlah;
}
if($request->noLP != $dbelicpkb["No LP"]){
$dbelicpkb["No LP"] = $request->noLP;
}
if($request->noBet != $dbelicpkb["No Bet"]){
$dbelicpkb["No Bet"] = $request->noBet;
}
if($request->noFaktur != $dbelicpkb["No Faktur"]){
$dbelicpkb["No Faktur"] = $request->noFaktur;
}
if($request->status != $dbelicpkb["Status"]){
$dbelicpkb["Status"] = $request->status;
}
$success = $dbelicpkb->save();
这是我尝试使用POSTMAN时的结果
[
"updated",
{
"Tanggal": "2020-01-31 00:00:00",
"No Bukti CPKB": "2001001",
"No Suplier CPKB": "300001",
"Kode Barang CPKB": "1010",
"Jumlah": "20",
"No LP": "P2001001",
"No Bet": "101010",
"No Uji": "UP2001001",
"No Faktur": "1010",
"Status": "Belum Diuji"
},
true,
200
]
结果是成功,但我的数据库中什么也没发生
这是我的路线
Route::post('dbelicpkbs/update/{id}', 'DBeliCPKBController@update');
这是我的模特
class DBeliCPKB extends Model
{
/**
* @var string
*/
protected $table = 'dbelicpkb';
protected $primaryKey = 'no uji';
/**
* @var array
*/
protected $guarded = [];
public $timestamps = false;
public function HBeliPembelians()
{
return $this->belongsTo(HBeliPembelian::class,'No Bukti');
}
}
答案 0 :(得分:0)
首先,在列名中保留空格是非常不好的做法。
您必须使用箭头设置给定模型实例的属性:
public function update(Request $request, $id) {
$dbelicpkb = DBeliCPKB::find($id);
if(is_null($dbelicpkb)) {
return response()->json('Spesifikasi Not Found', 404);
}
if($request->tanggal != $dbelicpkb->{'Tanggal'}){
$dbelicpkb->{'Tanggal'} = $request->tanggal;
}
if($request->noSuplier != $dbelicpkb->{'No Suplier CPKB'}){
$dbelicpkb->{'No Suplier CPKB'} = $request->noSuplier;
}
if($request->kodeBarang != $dbelicpkb->{'Kode Barang CPKB'}){
$dbelicpkb->{'Kode Barang CPKB'} = $request->kodeBarang;
}
if($request->jumlah != $dbelicpkb->{'Jumlah'}){
$dbelicpkb->{'Jumlah'} = $request->jumlah;
}
if($request->noLP != $dbelicpkb->{'No LP'}){
$dbelicpkb->{'No LP'} = $request->noLP;
}
if($request->noBet != $dbelicpkb->{'No Bet'}){
$dbelicpkb->{'No Bet'} = $request->noBet;
}
if($request->noFaktur != $dbelicpkb->{'No Faktur'}){
$dbelicpkb->{'No Faktur'} = $request->noFaktur;
}
if($request->status != $dbelicpkb->{'Status'}){
$dbelicpkb->{'Status'} = $request->status;
}
$success = $dbelicpkb->save();
}
还要确保已在模型的$fillable
属性中分配了该列:
public $fillable = [
'No LP',
'No Bet'
...
];
或者通过在模型中放置protected $guarded = [];
来填充所有内容
希望这个答案对您有帮助。
答案 1 :(得分:0)
方法和编码似乎有问题。
带有x-www-form-urlencoded的PUT
应该有帮助。