1

Blade と Laravel 4 を使用して深刻な問題に直面しています。具体的には、親セクションによって処理される変数の内容を変更するセクションが必要です。

例を作るために、それを見てください

controller.php

<?php

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

?>

ユーザーリスト.blade.php

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

base-list.blade.php

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

$row問題は、users-list テンプレートが解析され、base-list テンプレートの前に実行されるため、未定義の変数を取得することです。

私がした問題を回避するには:

base-list.blade.php

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

base-list-row.blade.php

{{ $row }}

しかし、まじめな話、私はそれを見ることができません :\

@extends を使用すると、テンプレートは子から親にレンダリングされる$__env->share('row', $row)ため、子が親の前に実行されるため、このトリックを使用することさえできません。

誰かが解決策またはより良い回避策を持っていますか?

4

0 に答える 0