У меня проблема, когда я выхожу из администратора "Попытка получить свойство 'id' не-объекта", используя laravel - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь выйти из системы администратора, но, к сожалению, я сталкиваюсь с ошибкой Пытаюсь получить свойство 'id' не-объекта Как исправить эту ошибку? пожалуйста, помогите мне спасибо.

public function index(){
   $user_permission = Users_Permissions::with('user')
                       ->Where('user_id',Auth::user()->id)
                       ->paginate(5);     
   return view('index',compact('user_permission'));
}

Ответы [ 3 ]

2 голосов
/ 24 февраля 2020

Проблема понятна. Когда вы выйдете из системы, Auth::user() будет нулевым. так что нет id. Вы можете решить эту проблему следующим образом.

public function index()
  {
   if (Auth::check()) {
      $user_permission = Users_Permissions::with('user')->Where('user_id',Auth::user()->id)
     ->paginate(5);     
     return view('index',compact('user_permission'));
  } else {
     // The condition when no user logged in
     // For an example
     return redirect('login'); // This is just an example
  }
1 голос
/ 24 февраля 2020

Для этого используйте try & catch в каждой функции и используйте промежуточное ПО для аутентификации для указанных c маршрутов при работе с пользователями с аутентификацией.

, так что для использования аутентификации требуются указанные c маршруты. , так что вам не нужно проверять каждую функцию. auth всегда присутствует.

Route::middleware('auth')->group(function () {
       Route::get('logout', 'AuthController@logout');
    });

или вы также можете использовать промежуточное ПО в контроллере,

class AuthController extends Controller
{
    public function __construct(){
        $this->middleware(['guest'])->except('logout');
    }
}
0 голосов
/ 24 февраля 2020

Это потому, что после выхода из системы у вас нет идентификатора пользователя, поэтому в этой ситуации пользователь является нулевым, и вы хотите получить объект if из нулевого объекта. Вы можете изменить эту часть кода, как показано ниже

Users_Permissions::with('user')->Where('user_id',Auth::user()->id ?? 0)

, тогда вы передадите ошибку. Вы можете указать каждое число или null в запросе в зависимости от ваших потребностей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...