首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于“产量和模板”的问题

关于“产量和模板”的问题
EN

Stack Overflow用户
提问于 2013-12-06 03:37:47
回答 2查看 775关注 0票数 0

我对Laravel非常陌生,我正在努力弄清楚如何使用模板。

我确信我在这里所拥有的应该是有效的,但是当我运行它时,我总是会遇到一个错误。我认为这与必须在同一行上发出命令有关。这仅仅是叶片发动机的一个限制吗?

routes.php

代码语言:javascript
复制
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

代码语言:javascript
复制
@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
@endsection

layout.blade.php

代码语言:javascript
复制
<!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>

而错误是

代码语言:javascript
复制
syntax error, unexpected '='

错误所在的行如下所示:

代码语言:javascript
复制
<link rel="stylesheet" href="<?php echo $__env->yieldContent('css')?r=@yield('rand'); ?>">

所以问题是:

代码语言:javascript
复制
<link rel="stylesheet" href="@yield('css')?r=@yield('rand')">

如果我删除第二个@yield

代码语言:javascript
复制
<link rel="stylesheet" href="@yield('css')?r=">

这页很好地载入。

所以,这仅仅是刀片的一个限制,还是我应该在页面中放置这些值的其他方式?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-06 11:36:06

最好的方法是只对较大的部分(如主内容或侧栏)使用“产”和“节”。

如果您需要“isset”条件,可以使用

代码语言:javascript
复制
@if(isset($title)){{$title}}@endif

但是,这也应该在带有clean的控制器上完成,包括变量的默认值。

票数 2
EN

Stack Overflow用户

发布于 2013-12-06 04:19:13

我不知道为什么你需要用@yield来做一件小事。

下面的简单代码将完成这项工作:

代码语言:javascript
复制
 <link rel="stylesheet" href="{{  $page['css'] }}?r={{  $page['rand'] }}">
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20415495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档