总结了几种 Laravel 中数据共享的方法
一、使用 AppServiceProvider
直接在 AppServiceProvider 中添加:
view()->composer('*', function($view) {
$foo = 'bar';
$view->with(compact('foo'));
});
- 共享所有模版,在 blade 模版中直接
{{ $foo }}
来引用
二、创建基础控制器
class BaseController extends Controller
{
protected $foo;
public funciton __construct()
{
$this->foo = 'bar';
}
}
控制器通过继承它来得到共享数据
class FooController extends BaseController
{
public function foo()
{
dd($this->foo);
}
}
三、创建 ComposerServiceProvider
// app/Providers/ComposerServiceProvider.php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class ComposerServiceProvider extends ServiceProvider
{
public function boot()
{
view()->composer(
'foo.index', 'App\Http\ViewComposers\FooComposer'
);
// ...
}
public function register()
{
# code...
}
}
// app/Http/ViewComposers/FooComposer.php
namespace App\Http\ViewComposers;
use Illuminate\Contracts\View\View;
class FooComposer
{
public function compose(View $view)
{
$view->with('foo', $bar);
}
}
在
config/app.php
中注册服务之后就可以在 post/index.blade.php
就可以获取数据了。以上from : http://laravel.so/tricks/404c3bd6187f1151010c2dc72d1ace16
沒有留言:
張貼留言