Laravel变量在HTML标记上方回显

时间:2014-04-10 12:14:31

标签: php laravel laravel-4 blade

我正在使用Laravel并将一些变量传递给视图,以便使用这样的刀片语法来回显它们:

@extends('masterLayout')

@section('content')
    @foreach($products $product)
        <p>{{ $product->name}}</p>
    @endforeach @stop
@end

在masterLayout.blade.php文件中是页面的布局,其中包含<html><head><body>标记。问题是,当这些变量传递给视图并回显时,它们不会被放置在应该存在的页面内。所有回声输出数据都放在HTML标记上方页面的顶部,就好像我在控制器中而不是在视图中回显它一样。是否有一个设置可以在Laravel中进行更改或以不同的方式实现此目的?

编辑:好的,这里是整个视图代码。实际上有三个,库存,inventoryLayout和masterLayout。我已经在控制器中注释掉了返回View :: make()并且它消失了,所以我绝对不会在视图本身以外的任何地方回显它。感谢您的帮助!

master.blade.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
    <title>AppName</title>

    <link rel="stylesheet" href="../assets/css/frontend.css">
</head>
<body>
<header class="navbar navbar-inverse navbar-fixed-top bs-docs-nav" role="banner">

  <nav id='top-nav'>
    <div class="centered-wrapper">
        <ul>
            <li><?php echo link_to('/login',"Login");?></li>
            <li><?php echo link_to('/admin',"Admin");?></li>
            <li><?php echo link_to('/inventory',"Inventory");?></li>
            <li><?php echo link_to('/dashboard',"Dashboard");?></li>
            <li><?php echo link_to('/recipes',"Recipes");?></li>
            <li><?php echo link_to('/shopping_list',"Shopping List");?></li>
        </ul>
    </div>
</nav>
</header>
    <div id="container">
        @yield('content')
    </div><!-- end container -->
</body>
</html>

inventoryLayout.blade.php

@extends('layouts.master')

<h1>My Inventory</h1>

@yield('inventoryItems')

inventory.blade.php

@extends('inventoryLayout')

@section('inventoryItems')
    @foreach($products as $product)
        <p>{{{ $product->name }}}</p>
    @endforeach
@stop

2 个答案:

答案 0 :(得分:0)

  1. @foreach($products $product)应为@foreach($products as $product)
  2. 尝试注释掉控制器中返回视图的行。如果页面没有变白,则表示您已经在控制器内回显了某些内容。
  3. 尝试在控制器中搜索varcharprint_rechodd
  4. 您的主布局中有哪些内容?

答案 1 :(得分:0)

自己想出来。我加入了一个名为&#39; content&#39;但从未在子视图中实际创建该部分,因此不是将该部分放在页面中而是将其放在页面上方。这修好了

inventoryLayout.blade.php

@extends('layouts.master')

@section('content');
<h1>My Inventory</h1>

@yield('inventoryItems')
@stop