Php 如何在laravel视图中共享来自不同控制器的数据?

Php 如何在laravel视图中共享来自不同控制器的数据?,php,oop,laravel,Php,Oop,Laravel,我有一个新闻控制器和一个页面控制器。pages控制器有一个名为home的方法,该方法返回主页的视图。我希望能够在主页上显示此新闻模块 从pages controller,我如何调用来自news controller的数据在首页显示新闻模块?您可以在news controller中创建静态方法,该方法返回新闻项并从pages controller调用它,例如: class PagesController extends BaseController(){ public function hom

我有一个新闻控制器和一个页面控制器。pages控制器有一个名为home的方法,该方法返回主页的视图。我希望能够在主页上显示此新闻模块


从pages controller,我如何调用来自news controller的数据在首页显示新闻模块?

您可以在news controller中创建静态方法,该方法返回新闻项并从pages controller调用它,例如:

class PagesController extends BaseController(){

 public function home(){
 $news = NewsController::GetNews();

 return View::make('home')
 ->with('news', $news);
 }
 }

class NewsController extends BaseController(){

public static function GetNews(){
 $news = NewsItem::OrderBy('id', 'DESC')->take(10)->get();
 return $news;
}

 }

你可以考虑用另一种方式来做。使用部分(小视图片段)加载新闻模块,并将数据传递到PagesController。随着时间的推移,这些因素相互耦合可能会变得不好。