如何从Laravel中的URL传递动态变量

时间:2020-07-12 10:54:13

标签: laravel

我需要从数据库中获取数据并显示它view。 这是我的web.php

Route::get('/businesscard/{name}',  function ($name) {
    
    
//$username= App\users::where('username', $name);


$username=DB::table('users')->select('*')
                     ->where('username', '=', $name)
                    // ->groupBy('status')
                     ->get();
   
    return view('auth.pro')->with(['username' => $username]);
   
   
   
     return array(
       'name' => $name
       );
       
       
       
});

如果用户输入domain.com/businesscard/username,我需要获取用户名的数据并在视图中显示它。它正在工作。但是我需要删除businesscard。用户需要输入domain.com/username。我已经尝试了以下代码。

Route::get('/{name}',  function ($name) {
    
    
//$username= App\users::where('username', $name);


$username=DB::table('users')->select('*')
                     ->where('username', '=', $name)
                    // ->groupBy('status')
                     ->get();
   
    return view('auth.pro')->with(['username' => $username]);
   
   
   
     return array(
       'name' => $name
       );
       
       
       
});

如果有数据,它可以正常工作。但是其他页面不能正常工作,例如登录和注册。用户正在注册时输入用户名。

2 个答案:

答案 0 :(得分:1)

您的路线顺序很重要。参见order of route declarations in laravel package

因此/ {name}应该注册为最后一条路由,以避免与其他路由匹配。

答案 1 :(得分:0)

/{name}表示/有任何值。如果您尝试使用/login/register。那么您的逻辑就与此混淆了,因此其他页面无法正常工作。像第一个一样,是您期望的最佳发展方式。

代码中的另一件事是有两个return,第二个没有做任何事情。在第一个之后,它返回查看,因此第二个未使用。还要删除该return