Wednesday, 15 April 2015

view - Share data in every subview -



view - Share data in every subview -

i have created layout contains header , main content changes regularly.

@include('tshop.includes.header') @yield('content') @include('tshop.includes.footer')

i have created below view composer in order pass products in basket pop dialog in header.

view::composer('tshop.includes.header', function($view) { $basket = app::make('basketinterface'); $view->with( 'productsiterator' , $basket->getiterator() ); });

the thing want share in views, including main content.

i tried utilize share (and shares) function thinking same view::share isn't.

view::composer('tshop.includes.header', function($view) { $basket = app::make('basketinterface'); $view->share( 'productsiterator' , $basket->getiterator() ); });

i tried utilize view composer layout in vain.

view::composer('tshop.layouts.default', function($view) { $basket = app::make('basketinterface'); $view->shares( 'productsiterator' , $basket->getiterator() ); });

next placed below filter constructor.

$this->beforefilter(function() { $basket = app::make('basketinterface'); view::share('productsiterator' , $basket->getiterator()); });

and worked, utilize several controllers, it's not best thing do. know can create base of operations controller class , extend isn't there improve way do?

you may utilize app::before event share info views globally using view::share, example:

app::before(function($request) { $basket = app::make('basketinterface'); view::share( 'productsiterator' , $basket->getiterator() ); });

now, may access $productsiterator view , btw, have used shares instead of share. may utilize view composer instead of using view::share, this:

view::composer('tshop.includes.header', function($view) { $basket = app::make('basketinterface'); homecoming $view->with( 'productsiterator' , $basket->getiterator() ); });

in case need utilize $view->with() method instead of share.

view laravel-4 blade

No comments:

Post a Comment