НЕ МОЖЕТ ОБНОВИТЬ ДАННЫЕ В LARAVEL КОНТРОЛЛЕРЕ - PullRequest
0 голосов
/ 31 января 2020

Я не могу обновить данные в базе данных, я использую почтальон, и результат успешный, но данные не обновлены в моей базе данных.

это моя функция в контроллере:

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');
    }

}

Ответы [ 2 ]

0 голосов
/ 31 января 2020

Попробуйте это:

Кажется, есть некоторые проблемы с методом и кодировкой.

PUT с x- www-form-urlencoded

Это должно помочь

0 голосов
/ 31 января 2020

Прежде всего, очень плохо использовать пробелы в именах столбцов.

Вы должны использовать стрелки для установки атрибутов данного экземпляра модели:

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 = []; в вашу модель

Надеюсь, этот ответ поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...