2021年1月4日星期一

Laravel fail to delete if only 1 record left

I bump into this problem. i have delete button and if working just fine if there is more than 1 record.

But if there is only 1 record left, it wont deleting. So, i cant delete all the row and i will always have 1 record left. I implemented softdelete in my model.

And it doesn give any error, it just do nothing after i confirm deletion

My delete button code

<button id="delete" data-title="" type="button"      class="btn btn-danger btn-sm" href=""      style="margin-bottom: 0.5em;">      <i class="zmdi zmdi-delete zmdi-hc-fw" style="color: #fff; font-size: 1.5em;"></i>      Delete  </button>    <form method="post" id="deleteForm">      @csrf      @method("DELETE")      <input type="submit" value="" style="display:none;">  </form>      @push('script')  <script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>  <script>      // Sweetalert Confirm          $('button#delete').on('click', function (event) {                event.preventDefault();              var href = $(this).attr('href');              var title = $(this).data('title');                swal({                  title: "Yakin Akan hapus " + title + " ?",                  text: "Data akan hilang dari database !!!",                  icon: "warning",                  dangerMode: true,                  buttons:{                      cancel: {                          visible: true,                          text : 'Batal',                          // className : 'btn btn-warning'                          className : 'btn btn-success'                      },                      confirm: {                          text : 'Hapus',                          className: 'btn btn-danger'                      }                  }              })                  .then((willDelete) => {                      if (willDelete) {                          document.getElementById('deleteForm').action = href;                          document.getElementById('deleteForm').submit();                          swal("Data " + title + " berhasil dihapus!", {                              icon: "success",                          });                      } else {                          swal("Batal", "Data tidak dihapus", "error");                      }                  });          });  </script>  @endpush  

my model

class TracingRecordDt extends Model  {      use SoftDeletes;      protected $table = 'tracing_c19d';      protected $guarded = ['id'];        protected $dates = [          'deleted_at',      ];          public function user()      {          return $this->belongsTo(User::class, 'user_id');      }  }  

My controller

    public function destroy($id)      {          dd('test'); //doesn't even run, if 1 record left             $tracing_recorddts = TracingRecordDt::findOrFail($id);          $tracing_recorddts->delete();          return redirect()->back();      }  

And my route

    Route::resource('tracing-record', 'TracingRecordController');  
https://stackoverflow.com/questions/65557098/laravel-fail-to-delete-if-only-1-record-left January 04, 2021 at 10:46AM

没有评论:

发表评论