在从控制器内重定向到路线之前提示确认对话框



在我的一个项目视图中,我有一个带有id="users-list"的表,其中一列将获取从UserController中的index_datatables函数返回的$action值。

UserController.php

.
.
.
public function index_datatables(Request $request){
$orderColumnDirection = $request->input('order.0.dir');
$orderColumnIndex = $request->input('order.0.column');
$orderColumnName = $request->input("columns.{$orderColumnIndex}.data");
$rows = $q->orderBy($orderColumnName, $orderColumnDirection)->get();
$data = [];
foreach ($rows as $row){
$action = 
'<div class="btn-group" role="group" aria-label="action example">
<a href="'. route('user.edit', [$row->id]) .
'" class="btn-action btn btn-outline-primary">Update
</a>
<a href="'. route('user.delete', [$row->id]) .
'" class="btn-action btn btn-outline-danger">Delete
</a>
</div>';
$data[] = array('id' => $row->id, 'action' => $action);
}
$json_data = array("data"=> $data);
return json_encode($json_data);
}
public function edit($id){
. . .
}
public function delete($id){
// Need to prompt some sort of "Cancel/Proceed" dialog here
$user = User::findOrFail($id)->delete();        
return redirect()->back()->with('message','User deleted successfully');
}
.
.
.

web.php

.
.
.
Route::prefix('user')->group(function(){
Route::get('/{id}/save', 'UserController@edit')->name('user.edit');
Route::get('/{id}/delete', 'UserController@delete')->name('user.delete');
}
.
.
.

我想在Delete操作上用一些"确定或取消"对话框提醒用户。

我试过这条线

Session::flash('message','Are you sure');

但是只有当视图被重新加载(重定向(时才会闪烁。

因此,我想问一下,如何从控制器中调用视图中的此类弹出窗口(重定向之前(?

您可以使用纯javascript来进行确认对话框。或者使用javascript库进行一些更漂亮的对话(bootbox,swal2(。

foreach ($rows as $row){
$action = 
'<div class="btn-group" role="group" aria-label="action example">
<a href="'. route('user.edit', [$row->id]) .
'" class="btn-action btn btn-outline-primary">Update
</a>
<a href="'. route('user.delete', [$row->id]) .
'" class="btn-action btn btn-outline-danger" onclick="confirm('are you sure?')">Delete
</a>
</div>';
$data[] = array('id' => $row->id, 'action' => $action);
}

最新更新