刷新内容页面而不刷新laravel中的母版页

时间:2015-11-03 18:48:48

标签: php laravel laravel-5.1

我有一个管理员布局

enter image description here

我有一个包含my的主布局:

  • top nav
  • 左侧导航

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

我的目标是在不刷新母版页的情况下刷新内容页面。

这样的东西有 laravel包吗?

2 个答案:

答案 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);