Как сделать, чтобы удалить конкретные данные, введенные (сохраненные в базе данных) в ионном? - PullRequest
0 голосов
/ 26 апреля 2019

Я создал контроллер API в laravel.Это имело успех.Данные были в состоянии быть удалены.Сейчас я пытаюсь создать код удаления в ионном.где, когда пользователь щелкнул значок удаления, данные могут быть удалены из ионной, а также в базу данных.

Я изменил код на функцию GET в ионном коде, но он не работает, но на самом деле я пока не могу найти решение.

вот что я сделал в laravel, какие данные удалось удалить при тестировании api в почтальоне.

api.php

public function deleteMed(Request $request) 
        {
            $id = $request->id;
            $medname = $request->medname;
            $price = $request->price;
            $stock = $request->stock;
            $medno = $request->medno;
            $ingredient = $request->ingredient;
            $description = $request->description;
            $addinfo = $request->addinfo;

             $user = AddMedicine::where('medno',  $request->input('medno'))->count();

             if($user!=0)
             {

                AddMedicine::where('id', $id)->delete([

                    'id' =>$id,
                    'medname'=>$medname,
                    'price'=>$price,
                    'stock'=>$stock,
                    'medno'=>$medno,
                    'ingredient'=>$ingredient,
                    'description'=>$description,
                    'addinfo'=>$addinfo,
                ]);

                $msg = "Data deleted"; 
                            $datamsg = response()->json([
                                'success' => $msg   
                            ]);  
                return $datamsg->content();
            }
            else{
                echo'{"error":{"text":" Medicine does not exist"}}';
            }
        }

Вот код, который я сделал в ionic.

viewMed.ts

  //alert delete data
  confirmdelete() {
  let alert = this.alertCtrl.create({
    title: 'Confirm Delete',
    message: 'Do you confirm to delete?',
    buttons: [
      {
        text: 'Cancel',
        role: 'cancel',
        handler: () => {
          console.log('Cancel clicked');
        }
      },
      {
        text: 'Yes',
        handler: () => {
          console.log('Yes clicked');
         this.deleteData(); // call deleteData()

        }
      }
    ]
  });
  alert.present();
}

  deleteData(){ 

    this.authService.deleteData(this.userData,'deleteMed').then((result) => {
      this.responsedata = result;
      if(this.responsedata.success){
          console.log(this.responsedata.success);
          localStorage.removeItem("userData");
          localStorage.setItem('userData', JSON.stringify({"id": this.responsedata.success}));
          //navparam
          this.navCtrl.push("ViewMedicinePage",({"id": this.responsedata.success}));
      }
      else
      {
          this.presentError(this.responsedata.error.text);
          console.log(this.responsedata.error);
      }
  }, (err) => {
    });
  }

  presentError(msg) { 
    let toast = this.toastCtrl.create({
        message: msg,
        duration: 3000,
        position: 'bottom',
        cssClass: "withdraw_error"
    });

    toast.present(toast);
  }

Я также создаю функцию удаления в authservice.ts в поставщиках папок.

authService.ts

 deleteData(credentials, type){
        return new Promise((resolve, reject) => {
            let headers = new Headers();
            this.http.delete(apiUrl+type, JSON.stringify(credentials),
                {headers:headers}).subscribe(res => {
                    resolve(res.json()); 
            }, (err) => {
                reject(err);
            });
        });
      }

, но в этом коде я получил ошибку в файле authservice.ts, ошибка ожидается 1-2 аргумента, но получил 3

Я хочу, чтобы данные можно было удалять, когда пользователь нажимает кнопку удаления и подтверждает удаление.Затем удаление данных обновляется в базе данных laragon.

1 Ответ

0 голосов
/ 26 апреля 2019

Запрос на удаление не принимает параметры тела, поэтому, если вы хотите передать данные тела, попробуйте

let headers = new Headers();
const options = {
     headers: headers,
     body: credentials
}

return new Promise((resolve, reject) => {         
     this.http.delete(apiUrl+type, options).subscribe(res => {
          resolve(res.json()); 
     }, (err) => {
           reject(err);
     });
 });

ref - https://angular.io/guide/http#making-a-delete-request

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