fix: ensure settings are only shared in views if the settings table exists

This commit is contained in:
Yoga Pangestu 2026-04-22 13:44:02 +07:00
parent c9998f5b4f
commit 09d70d052b

View File

@ -7,6 +7,7 @@
use App\Settings\SeoSettings; use App\Settings\SeoSettings;
use App\Settings\SocialMediaSettings; use App\Settings\SocialMediaSettings;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
class ViewServiceProvider extends ServiceProvider class ViewServiceProvider extends ServiceProvider
@ -24,26 +25,28 @@ public function register(): void
*/ */
public function boot(): void public function boot(): void
{ {
view()->share('general', app(GeneralSettings::class)); if (Schema::hasTable('settings')) {
view()->share('social', app(SocialMediaSettings::class)); view()->share('general', app(GeneralSettings::class));
view()->share('seo', app(SeoSettings::class)); view()->share('social', app(SocialMediaSettings::class));
view()->share('seo', app(SeoSettings::class));
view()->composer('components.partials.footer', function ($view) { view()->composer('components.partials.footer', function ($view) {
$routeStatisticModel = config('route-statistics.model', Visitor::class); $routeStatisticModel = config('route-statistics.model', Visitor::class);
$today = $routeStatisticModel::whereDate('date', Carbon::today())->sum('counter'); $today = $routeStatisticModel::whereDate('date', Carbon::today())->sum('counter');
$yesterday = $routeStatisticModel::whereDate('date', Carbon::yesterday())->sum('counter'); $yesterday = $routeStatisticModel::whereDate('date', Carbon::yesterday())->sum('counter');
$thisMonth = $routeStatisticModel::whereMonth('date', Carbon::now()->month) $thisMonth = $routeStatisticModel::whereMonth('date', Carbon::now()->month)
->whereYear('date', Carbon::now()->year) ->whereYear('date', Carbon::now()->year)
->sum('counter'); ->sum('counter');
$total = $routeStatisticModel::sum('counter'); $total = $routeStatisticModel::sum('counter');
$view->with('visitorStats', [ $view->with('visitorStats', [
'today' => number_format($today), 'today' => number_format($today),
'yesterday' => number_format($yesterday), 'yesterday' => number_format($yesterday),
'thisMonth' => number_format($thisMonth), 'thisMonth' => number_format($thisMonth),
'total' => number_format($total), 'total' => number_format($total),
]); ]);
}); });
}
} }
} }