Я попытался вставить контракт Guard в конструктор, я попытался передвигаться. Но когда пользователь вошел в систему - Auth :: check() возвращает false.Auth :: check возвращает false в AppServiceProvider
В других файлах (кроме 1 глобального промежуточного программного обеспечения) Auth :: check() работает правильно. В промежуточном ПО - перемещение Auth. Проверка наверху помогла устранить проблему. В этом случае - он не работает.
Дополнительная информация: Это приложение было обновлено с 4.2. Раньше он использовал Confide.
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
if(Auth::check())
{
$user = Auth::user();
$messages=Message::where('read',0);
$messages->where(function ($query) use ($user) {
$query->where('to',$user->id)->orwhere('from',$user->id);
});
$message_unread= $messages->count();
$new_notifications= Notification::where('user_id',$user->id)->where('viewed',0)->count();
}
else
{
$message_unread=0;
$new_notifications=8888888;
// его 888888 для целей тестирования.
}
view()->share(([
'message_unread'=>$message_unread,
'new_notifications'=>$new_notifications
]));
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
Возможный дубликат функций [Auth class и auth() doesnt работает в модели Eloquent. (Laravel 5)] (http://stackoverflow.com/questions/34835200/auth-class-and-auth-function-doesnt-works-in-eloquent-model-laravel-5) –
Я проверю это. Спасибо. –
Не удаляйте этот вопрос –