Tạo biến dùng chung cho nhiều view

LaravelPosted on

Trong dự án Laravel, có những biến cần dùng chung cho nhiều view, thay vì Controller tạo biến giống nhau và gởi cho tất cả các view, chỉ cần tạo các biến dùng chung này trong file app\Providers\AppServiceProvider.php như sau:

public function boot()
    {        
        //setting language
        if(isset($_COOKIE['language'])) {
            \App::setLocale($_COOKIE['language']);
        } else {
            \App::setLocale('en');
        }
        //get general setting value        
        $general_setting = DB::table('general_settings')->latest()->first();
        $currency = \App\Currency::find($general_setting->currency);
        View::share('general_setting', $general_setting);
        View::share('currency', $currency);
        config(['staff_access' => $general_setting->staff_access, 'date_format' => $general_setting->date_format, 'currency' => $currency->code, 'currency_position' => $general_setting->currency_position]);
        
        $alert_product = DB::table('products')->where('is_active', true)->whereColumn('alert_quantity', '>', 'qty')->count();
        View::share('alert_product', $alert_product);
        Schema::defaultStringLength(191);
    }

Lúc này các biến: general_setting, currency và alert_product có thể được truy cập ở các view (với các tên $general_setting, $currentcy và $alert_product)

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *