Php 在laravel中的控制器的每个功能中传递用户信息

Php 在laravel中的控制器的每个功能中传递用户信息,php,laravel,Php,Laravel,我有一个包含150多个功能的控制器。控制器内的几乎所有函数都返回视图。 如果用户登录,每个视图都应该更改。 我几乎通过使用父刀片服务器等在视图端处理了这一问题。但在控制器端,对于几乎所有功能,我都应该检查用户是否登录,并随视图返回一些关于用户的特定数据。 例如: $user=[]; if(Auth::check()) { $user=Auth::user; $reputation=$user['reputation']; $messages=$user->

我有一个包含150多个功能的控制器。控制器内的几乎所有函数都返回视图。 如果用户登录,每个视图都应该更改。 我几乎通过使用父刀片服务器等在视图端处理了这一问题。但在控制器端,对于几乎所有功能,我都应该检查用户是否登录,并随视图返回一些关于用户的特定数据。 例如:

 $user=[];
 if(Auth::check())
 {
     $user=Auth::user;
     $reputation=$user['reputation'];
     $messages=$user->messages();
     $notifications=$user->notification();
 }
 return view('pages.profile')->with(['user'=>$user , 'messages'=>$messages , 'notifications'=>$notifications]);
我认为这是可能的使用中间产品,但我不能想出它。 这里有什么替代方案?
有关更多信息,我正在使用laravel 5。

一个解决方案可能是使用自定义函数,而不是view()。例如:

//in your controller action
public function someAction() {
  return $this->view('pages.profile');
}

protected function view($template, $data = array()) {
  return view($template)->with($data)->with([data that needs to be passed to all views]);
}

我理解您的问题,但不理解您粘贴的代码如何解释问题:)您正在分配一些以后不再使用的变量。还可以传递用户对象,该对象足以获取视图中所需的所有数据。在我开始回答你想问的问题之前,你能详细说明一下吗@在这段代码中,我只想说明我需要为视图集中的几乎每个视图传递所有这些数据。如果我想在上面的数据中添加一个字段,我应该更改每个函数中的数据。我试图做的是将一些数据附加到此控制器返回的几乎每个视图。是否清除enouph?清除。但为什么不只将用户传递给模板呢?您始终可以通过调用$user->messages等来访问模板中的消息。这样,您将始终只向视图传递用户。除非您总是希望向视图传递更多的数据,并且这些数据并非都是用户模型的一部分,否则,我将尝试为您找到一个解决方案。是的,这是显而易见的,但大多数情况下都涉及到我正在处理的一些非关系连接。因此,如果有一种方法可以做到这一点,那将是非常好的。我现在也有了一个想法。要编写一个需要参数的函数,该参数是视图,并且数据被传递到该视图。在这个函数中,我得到对象并添加我想要的数据。当我想改变数据时,我只是改变函数。正确的?