2016-11-16 47 views
0

我試圖匹配用戶標識,用戶標識已經保存在數據庫中,這樣如果它匹配,則顯示用戶的不同詳細信息。但它顯示錯誤:Laravel 5.2:打開同一用戶的不同選項卡

NotFoundHttpException in RouteCollection.php line 161 

另外,我想盡快打開用戶的不同的細節作爲用戶ID匹配,但它不工作要麼。當我在沒有歡迎頁面的情況下嘗試時,只在URL中寫入user_id時,它顯示第一個選項卡,但是當我單擊第二個選項卡時,它顯示錯誤。細節和官方是導航欄和功能的選項卡。

歡迎blade.php:

<form action="action_page.php"> 
    Enter user id: 
    <input type="number" name="user_id"> 
    <input type="submit"> 
</form> 

UserController中:

public function getUser(Request $request) 
{ 
    if (Auth::attempt(['user_id' => $user_id])) { 

     return redirect()->route('pages.Details'); 
    } 

     return redirect()->back(); 
} 


public function getPD($user_id) 
{ 
    $user = User::Find($user_id); 
    return view('pages.Details')->withUser($user); 
} 

public function getOD($user_id) 
{ 
    $user = User::Find($user_id); 
    return view('pages.Official')->withUser($user); 
} 

用戶模式:

protected $table = 'tbl_user'; 
protected $primaryKey = 'user_id'; 

routes.php文件:

Route::get('/', function() { 
return view('welcome'); 
}); 

Route::get('/User',[ 
    'uses' => '[email protected]', 
    'as' => 'getUser' 
    ]); 

Route::get('/PD',[ 
    'uses' => '[email protected]', 
    'as' => 'PD' 
    ]); 

我嘗試了很多方法,但它不工作。請告訴我該怎麼做。歡迎任何建議。

如何讓用戶從數據庫中匹配它的用戶標識,然後通過首先顯示詳細信息選項卡來顯示詳細信息,當用戶單擊官方選項卡時,它將顯示該表。

+0

你不遵循laravel結構。轉到laravel文檔,看看如何工作。 –

+0

請你能告訴我我在哪裏不遵循laravel結構? –

+0

https://laravel.com/ –

回答

0

驗證:attemptp()用於驗證用戶,而不是獲取用戶。如果你想獲得的ID的用戶則需要更改此功能:

public function getUser(Request $request) 
{ 
    if (Auth::attempt(['user_id' => $user_id])) { 

     return redirect()->route('pages.Details'); 
    } 

     return redirect()->back(); 
} 

到:

public function getUser(Request $request) 
{ 
    $userid= $request['user_id']; 
    $user = App\User::find($userid); 
    return redirect()->route('pages.Details')->with('user',$user); 
} 

,並使用$user在您的詳細信息模板。

0

從您的getUser()方法看來,您希望將經過身份驗證的用戶重定向到與未經身份驗證的用戶不同的頁面。這裏是你可以做,以實現什麼:

welcome.blade.php

<form method="GET" action="{{ route('getUser') }}"> 
    {{ csrf_field() }} 
    <label for="user_id_input" >Enter user id:</label> 
    <input type="number" id="user_id_input" name="user_id" value="{{ old('user_id') }}> 
    <input type="submit"> 
</form> 

routes.php文件

Route::get('/', function() { 
    return view('welcome'); 
}); 

Route::get('/user',[ 
    'uses' => '[email protected]', 
    'as' => 'getUser' 
]); 

Route::get('/PD',[ 
    'uses' => '[email protected]', 
    'as' => 'PD' 
]); 

UserController.php

public function getUser(Request $request) 
{ 
    $user_id= $request->get('user_id'); 

    if(Auth::check() && Auth::user()->id === $user_id){ 
     return redirect()->route('PD'); 
    } 

    return back()->withInput();; 
} 

pubic function getPD($user_id) 
{ 
    $user = User::findOrFail($user_id); 
    return view('pages.Details', compact('user')); 
} 

public function getOD($user_id) 
{ 
    $user = User::findOrFail($user_id); 
    return view('pages.Official', compact('user')); 
} 

查看文件結構

-views 
    -pages 
    -Details.blade.php 
    -Official.blade.php 
    -welcome.blade.php 

在您的Details.blade.php文件中使用$ user。

相關問題