我有一个管理员布局
我有一个包含my的主布局:
每个页面都是一个视图,我扩展主布局视图,并仅更新内容部分。
我的目标是在不刷新母版页的情况下刷新仅内容页面。
这样的东西有 laravel包吗?
答案 0 :(得分:11)
简答:使用AJAX 。没有真正需要学习JavaScript框架,如果它简单(除非你真的想)。以下示例使用jQuery并假设您单击导航中的用户链接(所有链接都应该有nav-item
类,以便通过该选择器轻松识别它们)并且链接具有属性href="/admin/users"
。单击时,它将使用类content
加载元素中的内容:
$('.item-nav').click(function (event) {
// Avoid the link click from loading a new page
event.preventDefault();
// Load the content from the link's href attribute
$('.content').load($(this).attr('href'));
});
如果路由admin/users
将返回带有其内容的用户表:
get('admin/users', function () {
return view('users')->with('users', Users::all());
});
上面的Laravel路线示例当然是简化的,以展示导航中的每个项目都应链接到需要动态显示的内容的想法。
答案 1 :(得分:3)
您可以使用renderSections()。
在主控制器操作(例如AdminUsersController @ getIndex)中,您可以根据请求呈现视图的特定部分。这样,如果您对同一页面执行ajax请求,则只能返回您需要的部分。
if($request->ajax()) {
return view('admin.users',$users)->renderSections()['content'];
}
return view('admin.users',$users);