Şimdi şöyle bir şey de var, daha önce de böyle miydi yoksa sonradan mı değişti bilmiyorum bakmadım ama bunu bu konuda belirtmek istiyorum, hem alakalı hem de forumda arama yapıldığında çıksın diye:
Bildiğiniz gibi
php artisan migrate komutu ile migrasyonlarımızı kuruyoruz. Eğer bir ServiceProvider içerisinde bu şekilde veritabanı ile herhangi bir işlem yaptığınızda eğer tablo yoksa, yani henüz migrasyon yapılmamışsa,
php artisan migrate ile migrasyonu yapmaya çalıştığınızda
Illuminate\Database\QueryException]
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'db.tablename' doesn't exist...
gibi bir hata alacaksınız. Bunun sebebi
php artisan migrate yaptığınızda providerların migrasyondan önce yüklenmesi. Üstte verdiğim örneğe bakarsanız, php artisan migrate yapıldığında henüz daha users tablosu oluşmadığı için hata alacaksınız. Bunu engellemek için şöyle yapabilirsiniz:
if (!$this->app->runningInConsole()) {
$userCount = User::count();
View::share('__userCount', $userCount);
}
Bu şekilde cli de çalışırken bu kısmın çalışmasını engellemiş olduk