Laravel 4, view composer with parameters?

Suppose I have this:

//controllers/BlogController.php $data["post"] = $post = Blog::recent_post(); $data["posts_related"] = Blog::posts_related($post->category_id,5); return View::make('blog.home', $data); //views/sidebars/related.blade.php @foreach($posts_related as $r) <p>{{ $r->name }}</p> @endforeach //views/blog/home.blade.php @include('sidebars.related') 

My question is: how can I pass:

 $data["posts_related"] = Blog::posts_related($post->category_id,5); 

For the composer of the presentation, since I cannot pass parameters to the composer of the view, but I cannot be sure.

I appreciate any help!

+4
source share
1 answer

In View Composer, you can get the data transferred to View.

 View::composer('sidebars.related', function($view) { //$data contains category_id $viewdata= $view->getData(); //Retrive based on category_id $posts_related = Blog::posts_related($viewdata['category_id'],5); //pass related post to view $view->with('posts_related', $posts_related); }); 

now wherever you can use:

  View::make('sidebars.related')->with(array('category_id' => 6)); 
+29
source

All Articles