1. 程式人生 > >laravel模版共用數據解決方法

laravel模版共用數據解決方法

make app 說明 use margin erb get() 文件 bsp

問題:

  使用laravel5.8,前臺所有頁面需要共用標簽數據

解決方法:

1. 新建ComposerServiceProvider

php artisan make:provider ComposerServiceProvider

2. 編輯ComposerServiceProvider中都boot方法,添加

  
view()->composer(‘home.*‘,‘App\Http\ViewComposers\BaseInfoComposer‘);

說明:所有前臺模板在home文件夾下,所以home.*

3. config/app.php中註冊ComposerServiceProvider   providers中添加App\Providers\ComposerServiceProvider::class 4. app/Http目錄下新建ViewComposers文件夾,並在該文件夾下新建BaseInfoComoser.php文件夾 5. 編輯BaseInfoComposer.php   
namespace App\Http\ViewComposers;
use Illuminate\Http\Request; use Illuminate\View\View; use App\Models\Tag; use App\Models\Link; class BaseInfoComposer { public function compose(View $view) { $tags = Tag::where(‘id‘,‘>‘,0)->orderBy(‘id‘,‘DESC‘)->get()->toArray(); $links = Link::where(‘id‘,‘>‘,0)->orderBy(‘id‘,‘DESC‘)->get()->toArray();
$view->with([ ‘tags‘ => $tags, ‘links‘ => $links, ]); } }

至此完工,前臺所有模板以及模板調用都組件都可以使用$tags和$links變量

laravel模版共用數據解決方法