我有一个订阅者表:
当我点击删除时,btn会带一个模式进行确认:
我非常接近,但是当我点击删除时,即使我没有按下最后一个删除 btn,它也会删除列表中的最后一个。
我知道我必须在某个地方使用{!! Form::hidden('$id', $subscribe->id)!!}
,我不知道应该在哪里放置它。
<?php $x = 0; ?>
<div class="container">
<div class="row">
<a href="subscribe/create" class="btn btn-sm btn-success "> <span class="fa fa-plus"></span> Create </a><br><br>
<table class="table">
{{--Table Header--}}
<thead class="thin-border-bottom">
<th width="50" >#</th>
<th width="200" >Email</th>
<th width="100" >Subscribe On </th>
<th width="100" >Delete </th>
</thead>
{{--Table Body--}}
<tbody>
<tr>
@foreach( $subscribes as $subscribe)
<?php $x = $x+1; ?>
<td>{{ $x }}</td>
<td>{{ $subscribe->email or '' }}</td>
<td>{{ $subscribe->created_at or '' }}</td>
<td><a data-toggle="modal" data-target="#delete_subscriber" type="button" class="btn btn-danger btn-xs">Delete</a></td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<div class="modal fade" id="delete_subscriber" tabindex="-1" role="dialog" aria-labelledby="edit" aria-hidden="true">
<div class=" col-lg-5"> </div>
<div class=" center col-lg-2">
{!! Form::model($subscribe, array( 'route' => array('subscribe.destroy', $subscribe->id),'method' => 'DELETE')) !!}
<hr style="height:300pt; visibility:hidden;" />
{!! Form::submit ('Delete This Subscriber', array('class'=> 'btn btn-danger btn-lg btn-block', 'data-rel'=>"tooltip" , 'title'=>"Are you sure ?", 'data-placement'=>"top"))!!}<br><br>
<button data-rel="tooltip" title="Go Back" data-placement="bottom" type="button" class="btn btn-primary btn-lg btn-block" class="close" data-dismiss="modal" > Cancel </button> <br>
{!! Form::hidden('$id', $subscribe->id)!!}
{!! Form::close()!!}
</div>
</div>
有人可以告诉我,我该如何删除正确的?
如何停止我的应用程序删除列表中的最后一个对象?
public function destroy($id){
$subscribe = Subscribe::find($id);
$subscribe->delete();
return Redirect::to('subscribe')
->with('success','The web directory was deleted succesfully!');
}
答案 0 :(得分:1)
只是改变这样,但检查可能我错过路线路径,并添加您的确认弹出窗口
查看强> 将此代码放在foreach循环中,为每个行和行项id
生成删除按钮<td>
{!! Form::open(array('url' => 'subscribe/' . $subscribe->id)) !!}
{!! Form::hidden('_method', 'DELETE') !!}
{!! Form::submit('DELETE', array('class' => 'btn btn-danger')) !!}
{!! Form::close() !!}
</td>
控制器删除操作
public function destroy($id)
{
$subscribe= subscribe::subscribe($id);
$subscribe->delete();
return redirect('subscribe')->with(['flash_message' => 'successful delete!']);
}
答案 1 :(得分:1)
我有同样的问题,因为我匆忙,我不得不通过在视图中为foreach循环内的每条记录创建一个新模态来绕过这个问题。我不认为这是一个复杂的解决方案,但在我的情况下,我期望由于分页的少量记录,它工作正常。我想你可以使用Jquery来操作每次点击的模态动作,但我无法使它工作。希望它有所帮助
答案 2 :(得分:1)
每次按下删除按钮时,您需要在删除表单中动态设置id,以便知道要删除哪一个。
在打开模态的链接上,添加一个onclick
属性来处理这个问题。这应该适合你。
<td><a data-toggle="modal" data-target="#delete_subscriber" type="button" class="btn btn-danger btn-xs" onclick="$('#delete_subscriber').find('input[type=hidden]').val({{ $subscribe->id }})">Delete</a></td>
答案 3 :(得分:0)
你只需要在modal中使用一个在Controller @ destroy中引用的表单,将它显示为内联样式以在laravel 5.2中包含一个按钮提交,并使用method_field('DELETE')和crsf_field()添加你的引导类或css:
<form action="{{ action('UsersController@destroy', $user->id)}}" method="POST" style="display:inline;">
<button class="btn btn-danger btn-xs" onclick="return confirm('¿Seguro que deseas eliminar?')">
<span class="glyphicon glyphicon-remove-sign" aria-hidden="true"></span>
</button>
{{ method_field('DELETE') }}
{{ csrf_field() }}
</form>
控制器没有变化:
public function destroy($id)
{
$user= user::find($id);
$user-> delete();
return redirect()->route('admin.users.index');
}