2016-06-05 1 views
0

Я хочу, чтобы получить текущую USERID из базы данных без Auth: :(), и я не хочу, чтобы получить его из маршрута, как '/xxx/{id}'Как получить userId из базы данных без Auth: :()?

Есть ли другой способ получить USERID без Auth: :()?

например. $userId = User::where('id', $id)->pluck('id');

Вот мой Auth :: Контроллер декларация:

public function getLogout(Request $request) 
    { 

     $redis = \Redis::connection(); 
     $user = $request->user(); 

    if ($user) { 
     $userID = $user->id; 
     } 
//  $userId = User::where('id', $id)->pluck('id'); 
     dd($userID); 
//  $userId=Auth::user()->id; 
     $userSessions = $redis->smembers('users:sessions:' . $userId); 
     $currentSession = Session::getId(); 
     foreach ($userSessions as $sessionId) { 
      if ($currentSession == $sessionId) { 
      continue; 

       } 
       $redis->srem('users:sessions:' . $userId, $sessionId); 
       $redis->del('laravel:' . $sessionId); 

      } 
     Auth::logout(); 
     return redirect()->route('main'); 
    } 
+0

вы пробовали '$ userId = Пользователь :: where ('id', $ id) -> pluck ('id'); '? –

ответ

1

Непосредственно из docs:

Кроме того, после аутентификации пользователя, вы можете получить доступ к аутентификации пользователя через пример Illuminate\Http\Request. Помните, тип-намекнули классы будут автоматически впрыскивается в ваши методы контроллера:

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

class ProfileController extends Controller 
{ 
    /** 
    * Update the user's profile. 
    * 
    * @param Request $request 
    * @return Response 
    */ 
    public function updateProfile(Request $request) 
    { 
     if ($request->user()) { 
      // $request->user() returns an instance of the authenticated user... 
     } 
    } 
} 

Таким образом, было бы что-то вроде этого, чтобы получить ID:

$user = $request->user(); 

if ($user) { 
    $userID = $user->id; 
} 
+0

У меня ошибка: «Отсутствует аргумент 2 для приложения \ Http \ Controllers \ AuthController :: getLogout()' Как я уже сказал, я не хочу получать '{id}' из Маршрутов – User57

+0

Может вы показываете нам 'AuthController :: getLogout()' декларация? – lesssugar

+0

Вы вводите экземпляр 'Request $ request' для метода контроллера, поэтому вам больше не нужен параметр' id'. Убедитесь, что оно исчезло из объявления метода, а также путь 'getLogout(). – lesssugar

Смежные вопросы