【发布时间】:2014-05-24 03:25:38
【问题描述】:
我正在使用 Laravel 并将一些变量传递给视图以使用刀片语法将它们回显,如下所示:
@extends('masterLayout')
@section('content')
@foreach($products $product)
<p>{{ $product->name}}</p>
@endforeach @stop
@end
masterLayout.blade.php 文件中是页面布局,带有<html><head> 和<body> 标签。问题是,当这些变量被传递给视图并被回显时,它们并没有被放在它们应该在的页面中。所有回显的数据都放置在 HTML 标记上方的页面顶部,就好像我在控制器中而不是在视图中回显它一样。在 Laravel 中是否有可以更改的设置或其他方式来实现这一点?
编辑:好的,这是视图的完整代码。实际上有 3 个,inventory、inventoryLayout 和 masterLayout。我已经注释掉了控制器中的 return 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
【问题讨论】:
-
可能值得您发布 masterLayout 的内容以便我们查看。我注意到您上面的代码在 foreach 之后有一个偷偷摸摸的
@stop和一个@end(我认为这在 Blade 中没有任何作用)。
标签: php laravel laravel-4 blade