我已经开始在一个项目中使用 laravel 3,并在昨晚决定改用 laravel 4,因为我现在研究的大多数项目似乎都引用了 laravel 4,这对我来说似乎是前进的方向。然而,3 和 4 之间在基础知识上的差异让我感到沮丧,尤其是因为我找不到一个很好的参考站点,因为我找不到一个很好的参考站点,可以很好地参考在升级中要改变什么。(我会继续寻找)
无论如何...我的问题。我已将所有控制器和视图复制到 laravel 4 站点。我可以通过控制器通过路由显示 hello 页面和我自己的基本 html 页面。但是,我无法使用模板进行渲染。
我已经自己测试了模板并且可以让它渲染。我需要删除一些辅助函数,例如 to_asset() 但现在只使用简单的标记。这是:
views/_layouts/master.blade.php
在此我为我的内容创建了“占位符”:
@yield('additionalCss')
@yield('shortcuts')
@yield('content')
在模板的底部,我有:@yield('additionalScripts')
我使用此模板创建了另一个视图...
views/articles/index.blade.php
@extends('_layouts.master')
@section('additionalCss')
<link rel="stylesheet" href="/css/sangoma-green.css"/>
@stop
@section('shortcuts')
<a class="span2 data-block widget-block" href="/articles/create">
<section>
<span class="icon-address-book-alt"></span>
<strong>Add Article</strong>
</section>
</a>
<a class="span2 data-block widget-block" href="#">
<section>
<span class="icon-flag-alt"></span>
<strong>Reports</strong>
</section>
</a>
@stop
@section('content')
<div class="row">
<!-- Data block -->
<article class="span12 dark data-block">
<header>
...additional stuff here (removed for post)...
</header>
<section>
<table class="datatable table table-striped table-bordered table-hover" id="article_table">
... removed content for brevity ...
</table>
</section>
</article>
</div>
@stop
@section('additionalScripts')
<!-- jQuery DataTable -->
<script type="text/javascript" src="/js/plugins/dataTables/jquery.datatables.min.js"> </script>
@stop
当我尝试渲染这个视图时,我得到的只是我的浏览器的以下主要内容:
<head>
This strangely contains the script markup that's placed at the foot of the page
</head>
<body></body> which is empty
就好像视图没有引用主模板一样。
这些视图在 Laravel 3 中正常工作,我已将刀片标记(我认为)更改为 laravel 4。任何人都可以指出我的方式的错误。
谢谢