【发布时间】:2017-07-28 10:56:17
【问题描述】:
我的结构是这样的
head.blade.php
<html class="no-js">
<head>
<title></title>
</head>
<body class="page">
@include('layouts.sidepanel')
sidepanel.blade.php
div class="sidebar">
<ul>
<li>
<a href="#" class="menu-item" onclick="getPages({method: 'page',httpMethod: 'GET',uri: 'page',});">Page</a>
</li>
</ul>
</div>
foot.blade.php
<script type="text/javascript" src={{ asset('js/jquery.js') }}></script>
<script type="text/javascript" src={{ asset('js/scripts.js') }}></script>
</body>
</html>
base-layout.blade.php
@extends('layouts.head')
<main class="with-footer">
<div class="row main-grid">
@yield('content')
</div>
</main>
@include('layouts.foot')
控制者
public function getSettings() {
$settings = DB::table('settings')->get();
$returnHTML = view('settings')->with('settings', $settings)->render();
if($request->ajax()) {
return response()->json(array('success' => true, 'data'=>$returnHTML));
}
}
settings.blade.php
@extends('layouts.base-layout')
@section('content')
<p>Test</p>
@endsection
还有这个javascript函数
function getPages(params) {
$.ajax({
type: params.httpMethod,
url: params.uri
}).done(function (data) {
switch (params.method) {
default:
if (data.success) {
if (data.data) {
$('.main-grid').html(data.data).fadeIn();
}
}
break;
}
})
}
扩展 settings.blade.php 中的基本布局将复制主网格类中的侧边栏,并且 js 正在工作,但我不想在设置中的另一个页面与主页面完全相同,我只想要内容以及 js 在渲染时工作。
我也尝试过 renderSection()['content'],但结果相同。
【问题讨论】:
-
我认为
base-layout.blade.php这行@extends('layouts.head')有问题,应该是include而不是extends? -
包含或扩展没有区别。