2015-11-30 3 views
1

Может кто-нибудь помочь мне войти в систему со студентом, связанным со второй таблицей. Например; Вторая таблица имеет id как «abc», поэтому я хочу войти в систему как «abc», и когда она отправится на следующую страницу, она будет извлекать данные, которые ссылаются на данные «abc», а не на все данные.Войти со второй таблицей данных

AuthController.php

public function getLogin() 
{ 
    return view('auth.login'); 
} 

public function postLogin(Request $request) 
{ 
    if($this->auth->attempt($request->only('student_id', 'password'))) 
    { 
     return redirect('/student/profile'); 
    } 

    return redirect('/auth/login') 
     ->withErrors([ 
      'student_id'=>'Invalid User ID' 
     ]); 
} 

route.php

Route::get('/', function() { 
    return View::make('auth/login'); 
}); 

Route::get('student/profile', 
    ['middleware' => 'auth','uses' =>'Auth\[email protected]']); 

Route::post('/student/profile',array(
    'as'=>'login', 
    'uses'=>'[email protected]' 
)); 

login.blade.php

<section id="container"> 
    {!! Form::open(array('action' => 'Auth\[email protected]')) !!} 
    {!! csrf_field() !!} 

    <p>Student ID : {!! Form::text('student_id',null)!!}</p> 
    <p>Password : {!! Form::password('password')!!}</p> 

    <p>{!! Form::submit('Login') !!} </p> 
    {!! Form::close()!!} 
</section> 
+0

вы можете уточнить свой вопрос немного более –

+0

, когда я войти в систему как ID: азбука, pword: ABC. он переместится на следующую страницу с именем profile. в таблице профилей есть много данных, имеющих разные идентификаторы. поэтому мне просто нужны данные, которые ссылаются на id: abc. когда я вхожу в систему как «попробовать», я просто хочу получить профиль данных с идентификатором «try» в профиле таблицы. Здесь есть две таблицы с именем user (для входа) и профиля (для отображения данных). –

+0

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

ответ

0

Ваши маршруты не правильно (не логично).

Route::get('/', function() { 
    // when user is already login 
    if (Auth::user()) { 
     return redirect('students/profile'); 
    } 

    return redirect('login'); 
}); 

Route::get('login', ['uses' =>'Auth\[email protected]']); 
Route::post('login', ['as' => 'login','uses' =>'Auth\[email protected]']); 
Route::post('student/profile',['middleware' => 'auth', 'uses'=>'[email protected]' ]); 

После студент Логин метод getProfile контроллер может выглядеть следующим образом:

public function getProfile() { 
    // get data from user thats login 
    $user = Auth::user(); 

    $userData = ModelForTableTwo::where('student_id', $user->id)->get(); 

    // more stuff 

    return View::make('path.to.view', compact('userData', 'user')); 
} 
+0

почему он напрямую переходит на страницу студент/профиль? –

+0

Поскольку есть проверка, является ли пользователь логином и когда пользователь переадресовывает имя пользователя на страницу профиля –

+0

, я получил переменную id: undefined. –

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