Laravel 5处理从控制器

时间:2015-06-02 20:29:21

标签: php model-view-controller laravel-5

我有一个应用程序,它有许多视图,需要将一些代码注入视图的特定部分。在之前的应用程序中,我使用了根控制器来执行此操作并使用了特殊功能,但它改变了创建laravel应用程序的正常工作流程。

基本上说你有一个创建功能

public function create()
{
   return view('something');
}

并且您希望向特定部分添加内容,通常您将在视图中执行此操作并添加视图调用所需的任何数据。我想在控制器中执行此操作,但由于返回视图的任何函数在这种情况下都会显示相同的内容,我想稍微简化一下。

我试过看但我找不到关于控制器功能的后期处理的任何内容,是否有类似的东西?这是一个例子。

public function beforeRender($instance)
{
   if ($instance instanceof View)
   {
      $instance->getFactory()->inject('context-menu', $someData);
   }

   return $instance;
}

beforeRender函数将在控制器中的create函数之后运行并更改返回,允许对具有视图的任何内容进行特殊返回。

所以我的问题是,如果在laravel 5(或类似的)中有这样的东西,我将如何做到这一点。在之前的应用程序中,我重新设计了laravel如何处理控制器,但我希望这次不要这样做。

1 个答案:

答案 0 :(得分:1)

如果我没弄错的话,该功能将在Laravel 5.1中实现。您可以获取开发版本或等到发布时间。

Laravel文档中的

Service Injection

@inject('metrics', 'App\Services\MetricsService')

<div>
    Monthly Revenue: {{ $metrics->monthlyRevenue() }}.
</div>

您也可以查看Code Composers。方法有点不同,保持观点的灵活性和跨度:

public function compose(View $view)
{
    $view->with('count', $this->users->count());
}