簡體   English   中英

laravel通過路由到'/ user / {username}'無法獲取用戶信息

[英]laravel get user info by routing to '/user/{username}' Not Working

我是laravel的新手,我無法通過轉到路線“ user / {username}”來獲取用戶信息;

從理論上講應該可行,這是我的路線:

Route::get('/user/{username}', function($username){
    $user = User::where('username',$username) -> first();
    if(isset($user['username'])){

        return redirect()->route('/user/'.$username, ['user' => $user]);

    }else{

        return redirect()->route('/user/'.$username, ['error' => 'This User Does Not Exist']);

    }
});

我確實use App\\User; 在頁面中,因此它應該可以工作。 我收到此錯誤:
NotFoundHttpException in RouteCollection.php line 161:

感謝您的任何幫助,謝謝。如果您需要更多信息以幫助您,請告訴我。

重定向采用的是路由名稱,而不是您希望重定向的路徑。 在您的代碼中,為您的路線添加一個名稱,如下所示:

Route::get('/user/{username}', function($username) {
    [...]
})->name('username');
// Here we call our route 'username'

現在,您可以像這樣進行重定向:

// Note that we call redirect with the name we just gave it, passing the username value forward
return redirect()->route('username', ['username' => $user]);

編輯:查看您的代碼,我不完全了解您想要做什么。 該代碼看起來會創建一個重定向循環? 看起來如果找到用戶,您將重定向回相同的路由?

您應該使用firstOrFail。 如果在數據庫中找不到用戶,則此方法將引發404錯誤。

使用->調用用戶列值。 因此,您的代碼應如下所示:

Route::get('/user/{username}', function($username){
    $user = User::where('username',$username)->firstOrFail();
    return view('viewname', ['user' => $user]);
}

不要忘記為您的用戶頁面創建視圖。 您還應該創建一個控制器來處理該請求。

$user = User::where('username', '=', $user)->first();

試試這個..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM