2015-11-03 204 views
1

我有一个管理布局刷新页面内容无需刷新母版页中laravel

enter image description here


我有一个总体布局包含我:

  • 顶部导航
  • 左侧NAV

每个页面都是一个视图,我扩展了主布局视图,并仅更新了内容部分。

我的目标是刷新只有内容页面没有刷新母版页。


有没有这样的事情任何laravel包

+0

简单的使用ajax)或者我应该解释更多? –

回答

6

简短的回答:使用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

很好的答案砰的一声 –

+0

你总是提供答案。我真的很感激你的帮助。 – ihue

2

您可以使用renderSections()。

在你的主控制器的动作(比如AdminUsersController @ getIndex)可以渲染根据请求您的视图的特定部分。这样,如果您对您所在的同一页面执行ajax请求,则只能返回所需的部分。

if($request->ajax()) { 
     return view('admin.users',$users)->renderSections()['content']; 
} 

return view('admin.users',$users);