Laravel 4和Blade - 取决于变量的部分

时间:2014-01-20 15:48:32

标签: php laravel laravel-4 laravel-blade

我正在使用Blade和Laravel 4面临一个严重的问题,特别是我需要一个部分来改变它由父部分处理的变量的内容。

举个例子,看看那个

Controller.php这样

<?php

$data = array('rows' => array('a', 'b', 'c', 'd'));
View::make('users-list', $data);

?>

用户-list.blade.php

@extends('base-list')
@section('table-row')
my {{ $row }}
@overwrite

基list.blade.php

@section('table')
foreach($rows as $row)
{
    @section('table-row')
    {{ $row }}
    @stop
    @yield('table-row')
}
@show

问题在于我得到了未定义的变量$row,因为解析了用户列表模板并在基本列表模板之前执行。

解决我遇到的问题:

基list.blade.php

@section('table')
foreach($rows as $row)
{
    {{ View::make('base-list-row', array('row', $row)) }}
}
@show

基一览row.blade.php

{{ $row }}

但是,说真的,我不能看那个:\

因为在使用@extends时模板是从子节点渲染到父节点所以我甚至无法使用$__env->share('row', $row)技巧,因为子节点在父节点之前执行。

有人有解决方案或更好的解决方法吗?

0 个答案:

没有答案