我有一个管理布局
我有一个主布局包含我的:
每个页面都是一个视图,我扩展了主布局视图,并仅更新内容部分。
我的目标是刷新仅内容页面而不刷新母版页。
是否有类似的 laravel 包?
简短回答:使用 AJAX。如果 JavaScript 框架那么简单的话,就没有必要学习它(除非你真的想学)。下面的示例使用 jQuery 并假设您单击导航中的 Users 链接(那里的所有链接都应该有
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 路线示例当然是经过简化的,以展示导航中的每个项目都应该链接到需要动态显示的内容的想法。
您可以使用 renderSections()。
在主控制器操作(例如 AdminUsersController@getIndex )中,您可以根据请求呈现视图的特定部分。这样,如果您对所在页面执行 ajax 请求,则可以仅返回您需要的部分。
if($request->ajax()) {
return view('admin.users',$users)->renderSections()['content'];
}
return view('admin.users',$users);
您可以使用 laravel livewire 来完成此任务。通过在组件内的元素上使用 wire:poll。