php 如何正确删除数据?

20jt8wwn  于 2023-10-15  发布在  PHP
关注(0)|答案(3)|浏览(105)

这是我的删除按钮

<!-- Hapus Data -->
              <button type="button" class="btn btn-danger" data-bs-toggle="modal" data-bs-     target="#exampleModal">
                Hapus
              </button>

              <!-- Modal -->
              <div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
                <div class="modal-dialog">
                  <div class="modal-content">
                    <div class="modal-header">
                      <h5 class="modal-title" id="exampleModalLabel"> Apakah anda yakin ingin menghapus data? </h5>
                      <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                    </div>                        
                    <div class="modal-footer">
                      <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Tutup</button>
                      <a href="/deletedata/{{$row->id_pegawai}}" type="button" class="btn btn-primary">Ya</a>
                    </div>
                  </div>
                </div>
              </div>
            </td>
          </tr>
          @endforeach
        </tbody>
      </table>
    </div>
  </div>

我试着用laravel做CRUD。当我尝试删除第三个数据时,但删除的数据是第一个数据。所以我删除的数据不是我想删除的
这是我的控制器

public function deletedata($id_pegawai){

        $post = Employee::where('id_pegawai',$id_pegawai)->first();
        if ($post != null) {
            $post->delete();
            return redirect('pegawai')->with('success', 'Data berhasil dihapus!');
    }
nwlqm0z1

nwlqm0z11#

Eloquent提供了多种方法来做到这一点。以下是一些示例:
1 -使用模型示例

$employee = Employee::find($id);
$employee->delete();

2 -使用where语句删除

Employee::where('column', $value)->delete();

这在您必须删除一个或多个行的情况下很有用,不一定知道它们的主键(但也可以使用)。
3 -使用destroy方法

Employee::destroy($id);

这也将一次删除许多行,如果您像

Employee::destroy($id1, $id2, $id3 /* and so on...*/);

Employee::destroy(collect([$id1, $id2, $id3]));

字体:https://laravel.com/docs/10.x/eloquent#deleting-models

uidvcgyl

uidvcgyl2#

routes/web.php中设置路由,如

Route::post('/deletedata/{employeeid}', [EmployeeController::class, 'deletedata')->name('employee.delete');

访问路由,如

href="{{route('employee.delete', $row->id)}}"

重要注意事项:在处理敏感数据时,使用带有隐藏输入的表单。阅读更多在这里和这里

kfgdxczn

kfgdxczn3#

刀片结构

<form action="{{ route('deletedata', [$row->id_pegawai]) }}" method="POST">
@csrf
@method('DELETE')
<button type="submit"> DELETE </button>
</form>

网络路由

Route::delete('/deletedata/{userId}', [EmployeeController::class, 'destroy')->name('deletedata');

员工控制器

public function destroy(Employee $userId)
{
   $userId->delete();
   return "user deleted";
}

相关问题