首页 > 解决方案 > Laravel 初学者使用模态删除数据

问题描述

我的模态效果很好,可以删除数据,但不能删除我选择删除的确切 ID,例如 id: 1, 2, 3, 4 我会选择 id: 4 但 id: 4 不会删除删除的 id 是 id : 1

这是我在 AllSystemController 中的删除功能

public function deletestorydata($id)
{
    $story = Story::findOrFail($id);
    $story->delete();
    return redirect()->back()->with('success', 'Data has successfully deleted.');
}

这是我在故事部分的路线 web.php

Route::get('stories/table', 'AllSystemController@indexstoriesdata')->name('stories.table');
Route::get('/stories/add', 'AllSystemController@createviewstories')->name('create.stories');
Route::post('/stories/storiesdata/submit', 'AllSystemController@submitstories')->name('submit.stories.data');
Route::get('/stories/view/{id}', 'AllSystemController@showviewstories')->name('view.story.data');
Route::get('/stories/edit/{id}', 'AllSystemController@editviewstories')->name('edit.stories');
Route::patch('/stories/{id}', 'AllSystemController@updatestorydata')->name('update.story.data');
Route::delete('/deletestory/{id}', 'AllSystemController@deletestorydata')->name('delete.story.data');

这是我的观点 index_stories_data.blade.php

<table id="table-style-hover" class="table table-striped table-hover table-bordered nowrap">
<thead>
<tr>
    <th width="1%">Image</th> 
    <th>Title</th>
    <th>Flagship</th>
    <th>Category</th>
    <th>Author</th>
    <th class="text-center">Action</th>
</tr>
</thead>
<tbody>
@foreach($story as $row)
<tr>
    <td><img src="{{ asset('storage/stories_images')}}/{{$row->display_image}}" class="img-thumbnail" width="50"></td>
    <td>{{$row->title}}</td>
    <td>{{$row->is_flagship}}</td>
    <td>{{$row->category_name}}</td>
    <td>{{$row->name}}</td>
    <td>
    <div class="dropdown">
       <button class="btn btn-primary" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Action&nbsp;<i class="fa fa-sort-desc" aria-hidden="true"></i></button>
  <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
    <a style="color:black; font-weight: bold;" class="dropdown-item" href="{{url('/stories/view', $row->id)}}" target="_blank">View</a>
    <a style="color:black; font-weight: bold;" class="dropdown-item" href="{{url('/stories/edit', $row->id)}}" target="_blank" class="btn btn-primary">Edit</a>
    <a style="color:black; font-weight: bold;" class="dropdown-item" data-toggle="modal" data-target="#delete" href="">Delete</a>

  </div>
</div>

这是我的模态和脚本

<div class="modal fade modal-icon" id="delete" tabindex="-1" role="dialog" aria- 
labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">

<h4 class="modal-title" id="myModalLabel">Delete Confirmation</h4>
</div>
<form method="post" class="delete_form" action="{{url('/deletestory', $row->id)}}">
    {{csrf_field()}}
    <input type="hidden" name="_method" value="DELETE">
<div class="modal-body">
  <h4 class="text-center">Are you sure you want to delete it?</h4>
</div>

<div class="modal-footer">
<button type="button" class="btn btn-process" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-danger">Confirm</button>
</form>

</div>
</div>
</div>
</div>

<script>
  $(document).ready(function(){
    $('.delete_form').on('delete', function(){
      if(confirm("Are you sure you want to delete this data?"))
      {
        return true;
      }
      else
      {
        return false;
      }
    });
  });
</script>
@endforeach
</tbody>
</table>

我试图 dd($story); 值,例如 id: 1, 2, 3, 4,我会选择要删除的按钮是 id: 3 并且 dd 中的结果是 id: 1 我的函数有问题吗?我怎样才能解决这个问题?

标签: laravellaravel-5

解决方案


您是否具有 js 功能来根据您要删除的项目更改表单操作中项目的 ID?如果不是,您的 id 将始终为 1 或数据中第一个对象的任何 id。

<form method="post" class="delete_form" action="{{url('/deletestory', $row->id)}}">

推荐阅读