Wenn Laravel über die übergeordnete Klassenebene arbeitet, werden die Parameter an das Blade-Seitenlayout übergeben.
阿神
阿神 2017-05-16 16:56:01
0
3
398

Wenn bei im Layout verwendeten Variablen Parameter vom Controller übergeben werden, muss der Vorgang für jede Ansicht wiederholt werden!
So lösen Sie das Problem der Übergabe des Ergebnisses an das Layout nach einer Berechnung, damit alle Ansichten es verwenden können (ich möchte nicht, dass Geschäftscode in der Layoutansicht angezeigt wird).

zB:
1. Berechtigungsverwaltung, unterschiedliche Menüs für unterschiedliche Benutzer festlegen!
2. Dynamische Zahlen im Menü, wie z. B. [Heutige Bestellung (50)], bei der 50 alle Controller dazu zwingen, die Daten abzurufen und sie dann an die Ansicht weiterzugeben!

阿神
阿神

闭关修行中......

Antworte allen(3)
迷茫

有两种方法可以解决:

第一:传统的ViewComposerProvider

class NavViewComposerProvider extends ServiceProvider {

public function boot(){
    view()->composer('partials.nav', function ($view) {

        $view->with('userAtLayout', User::find(Auth::user()->id));
        //根据自己的需求改呗

    });
  }
}

第二,Laravel 5.1新特性@inject:

@inject('var','Class')
// var 变量名 Class绑定的类名

比如你可以这样:

@inject('nav','App\SiteNav')

在SiteNav中查询数据就可以了。

题外话:认真看文档,可以解决你越到的80%的问题。

Happy Hacking

巴扎黑
phpView::share('name', $var)
PHPzhong

楼上说的方法都不靠谱,获取不了当前url参数来传入你的函数中的

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!