在我的一个项目视图中,我有一个带有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);
}