所以在一个Ajax调用中,我想返回一些数据的页面索引视图,同时还发送其他数据-消息。
索引视图看起来像这样:
public function index()
{
// data retrieval
$data = [
'groups' => $groups,
'info' => $info,
];
return view('groups.index')->with('data', $data);
}
现在有了这个Ajax调用
$(document).ready(function(){
$('.group-delete-fa').click(function() {
if (confirm('Remove user?')) {
var id = $(this).attr('id');
var idGroup = $(this).attr('value');
$.ajax({
headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
method: "POST",
url: "/remove_user",
data: {id: id, idGroup: idGroup },
success: function(response) {
$('body').html(response);
$('.dropdown-toggle').dropdown();
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
//alert(errorThrown);
}
});
}
})
});
我称这个功能
public function removeUser(Request $request) {
$id = $request->id;
$idGroup = $request->idGroup;
$user = User::find($id);
//$user->groups()->detach($idGroup);
$view = $this->show($idGroup);
return $view->with('success', 'User removed from group')->render();
}
这样解析消息(在巨型jumbotron根元素中):
@if (session('success'))
<div class="alert alert-success">
{{session('success')}}
</div>
@endif
但是,该消息不会与$data
一起发送,也不会被解析。我猜您不能像这样链接with()
函数吗?如何发送其他数据?
谢谢您的帮助。
答案 0 :(得分:1)
success
作为变量传递给视图,而不是会话中。
尝试为session('success')
更改根巨型jumbotron元素$success
,以确保它首先存在于isset中。 @if (isset($success))
<div class="alert alert-success">
{{$success}}
</div>
@endif
答案 1 :(得分:0)
好的,所以我这样做了:
return redirect('/groups/' . $idGroup)->with('success', 'User removed from the group.');
哪种方法有效,但是如果您使用Ajax,这是一种很好的方法吗?