簡體   English   中英

Laravel在多個控制器之間共享變量

[英]Laravel Share Variables between multiple Controllers

我正在使用AppServiceProvider與所有相關視圖共享特定的管理數據。

現在我想與所有管理員相關的控制器共享管理數據,以用Auth::guard('admin')->user()->firstname by $admin->firstname替換Auth::guard('admin')->user()->firstname by $admin->firstname

$id = Auth::guard('admin')->user()->id;
$admin = Admin::findOrFail($id)->first();

我如何與所有相關的控制器共享這一段代碼來獲得例如管理員firstname通過$admin->firstname

我會去創建一個全球中間件

php artisan make:middleware AdminCarrier

在中間件中,您可以將$admin變量添加到$request包並通過Controller訪問它。

class AdminCarrier
{
    public function handle($request, Closure $next)
    {
        $id = Auth::guard('admin')->user()->id;
        $admin = Admin::findOrFail($id)->first();

        $request->request->add(['admin' => $admin]);

        return $next($request);
    }
}

在控制器中,您可以通過以下方式訪問它:

$request->admin

通過在Http/Kernel.php注冊,確保中間件是全局的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM