我对Laravel非常陌生,我正在努力弄清楚如何使用模板。
我确信我在这里所拥有的应该是有效的,但是当我运行它时,我总是会遇到一个错误。我认为这与必须在同一行上发出命令有关。这仅仅是叶片发动机的一个限制吗?
routes.php
Route::get('/', function()
{
return View::make('hello');
});
// Test Route:
Route::get('jtest', function(){
$page = array(
"lang" => "en",
"title" => "jtest",
"css" => "css/layout.css",
"rand" => rand()
);
return View::make('jtest')->with('page', $page);
});jtest.blade.php
@extends('layout')
@section('html-lang')
@if ( isset($page['lang']) )
{{ $page['lang'] }}
@endif
@endsection
@section('title')
@if ( isset($page['title']) )
{{ $page['title'] }}
@endif
@endsection
@section('meta-description')
@if ( isset($page['meta-description']) )
{{ $page['meta-description'] }}
@endif
@endsection
@section('css')
@if ( isset( $page['css'] ) )
{{ $page['css'] }}
@endif
@endsection
@section('rand')
@if ( isset( $page['rand'] ) )
{{ $page['rand'] }}
@endif
@endsectionlayout.blade.php
<!doctype html>
<html lang="@yield('html-lang')">
<head>
<meta charset="utf-8">
<title>@yield('title')</title>
<meta name="description" content="@yield('meta-description')">
<meta name="author" content="Jimmy Hogoboom">
<link rel="stylesheet" href="@yield('css')?r=@yield('rand')">
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<script src=""></script>
</body>
</html>而错误是
syntax error, unexpected '='错误所在的行如下所示:
<link rel="stylesheet" href="<?php echo $__env->yieldContent('css')?r=@yield('rand'); ?>">所以问题是:
<link rel="stylesheet" href="@yield('css')?r=@yield('rand')">如果我删除第二个@yield
<link rel="stylesheet" href="@yield('css')?r=">这页很好地载入。
所以,这仅仅是刀片的一个限制,还是我应该在页面中放置这些值的其他方式?
发布于 2013-12-06 11:36:06
最好的方法是只对较大的部分(如主内容或侧栏)使用“产”和“节”。
如果您需要“isset”条件,可以使用
@if(isset($title)){{$title}}@endif但是,这也应该在带有clean的控制器上完成,包括变量的默认值。
发布于 2013-12-06 04:19:13
我不知道为什么你需要用@yield来做一件小事。
下面的简单代码将完成这项工作:
<link rel="stylesheet" href="{{ $page['css'] }}?r={{ $page['rand'] }}">https://stackoverflow.com/questions/20415495
复制相似问题