0

私はlaravelが初めてで、奇妙なビュー拡張メソッドを使用しています。

3 つのビュー ファイルがあるとします。

  template.blade.php
     form.blade.php
     filteredData.blade.php

これらのファイルを次のように整理しました

template は最上位の form.blade が template.blade を拡張しています

そしてfilteredDataはフォームを拡張しています。

ロジックによってフィルタリングされたデータは子ではなく、フォームの兄弟に似ているため、これは機能しますが、私には意味がありません。データがある場合にのみロードされます。

考え方のアドバイスをいただけないでしょうか。

テンプレートはすべてのWebサイトページ用であり、フィルターされたデータを含むフォームがどこにでも必要なわけではないため、テンプレートに直接配置することもできません.

4番目のファイルを作成する必要がありますか?フォームとfilteredDataの2つのブロックを持つFormAndFilter.blade.phpとしましょう? そのため、テンプレートを拡張します。

次に、フォームは FormAndFilter.blade.php を拡張します

また、filteredData は FormAndFilter.blade.php を拡張します

そのため、兄弟のように見えます。

しかし、コントローラー関数でどのように呼び出すのでしょうか?

今(これらの3つのファイルを持っています)私は電話します

$this->layout->content = View::make('filteredData', $this->viewData);

兄弟がいる場合、そのうちの 1 人は呼び出されません。フォームまたはフィルター処理されたデータを呼び出します。わかりません。

ところで

$this->layout->content 

@yield('content'); を理解しているとおりに記入します。これはテンプレートにあります。

編集済み

最後に長い苦労の末、兄弟のように見える方法を見つけましたが、4番目のビューを使用しました:

$form = View::make('form');
    $filteredData = View::make('filteredData');

    $turnover = View::make('turnover')
        ->with('form', $form)
        ->with('filtered', $filteredData);


    return View::make('layout', array('content' => $turnover));

4 番目のビュー - turnover.blade.php は次のようになります。

turnover

{{ $form }}

{{ $filtered }}

そして、ページに書いたこの男に感謝します:

https://coderwall.com/p/2v7urq

これがlaravelのドキュメントにあればいいのにと思います。

4

0 に答える 0