我试着从3天开始学习拉维,我有点小问题。
在我的数据库中,我有一个表“settings”,它看起来像:
我需要在我加载的每个页面中使用这些数据。我这样做是为了在我的视图中加载数据:
public function indexFront()
{
$posts = $this->blog_gestion->indexFront($this->nbrPages);
$links = str_replace('/?', '?', $posts->render());
//Here i load my setting
$setting_gestion = new SettingRepository(new setting());
$config = $setting_gestion->getSettings('ferulim');
//Next i pass my setting to my view
return view('front.blog.index', compact('posts', 'links', 'config'));
}
它工作,但我需要在每个控制器和每个功能…我想还有一种方法可以做同样的事情:p
帮助我!
最佳答案
您可以使用视图生成器(http://laravel.com/docs/5.0/views#view-composers)轻松实现对选定视图或所有视图的设置。
首先,您需要实现一个视图生成器,它执行您希望为每个视图执行的逻辑:
<?php namespace App\Providers;
use View;
use Illuminate\Support\ServiceProvider;
class ComposerServiceProvider extends ServiceProvider {
public function boot()
{
View::composer('*', function($view) {
$blog_gestion = ...; // fetch or instantiate your $blog_gestion object
$posts = $blog_gestion->indexFront($this->nbrPages);
$links = str_replace('/?', '?', $posts->render());
$setting_gestion = new SettingRepository(new setting());
$config = $setting_gestion->getSettings('ferulim');
$view->with(compact('posts', 'links', 'config'));
});
}
public function register()
{
//
}
}
接下来,在config/app.php的providers数组中注册新的服务提供者。
就这样:)如果有任何错别字/错误,请告诉我,我还没有机会运行代码。