【问题标题】:How pass Dynamic variable from url in Laravel如何从 Laravel 中的 url 传递动态变量
【发布时间】:2020-11-01 17:20:54
【问题描述】:

我需要从数据库中获取数据并显示它 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
       );
       
       
       
});

如果有数据,它正在工作。但其他页面无法正常工作,如登录和注册。用户在注册时输入他们的用户名。

【问题讨论】:

  • /{name} 也就是说,/login/register 不起作用。
  • 查看我的回答,它会对您有所帮助。如果有帮助,请点赞并接受我的回答。谢谢

标签: laravel


【解决方案1】:

/{name} 表示/ 任何值。如果您尝试/login/register。那么您的逻辑会与此混淆,因此其他页面无法正常工作。像第一个一样按照您的期望进行开发的最佳方式。

你的代码中有两个return,第二个没有做任何事情。在第一个之后它返回查看所以第二个未使用。也删除那个return

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 谢谢。我已更改路线顺序。它正在工作。
    • 也请标记为答案,让其他人找到。
    猜你喜欢
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 2022-06-30
    • 2013-11-09
    • 2021-03-18
    • 1970-01-01
    相关资源
    最近更新 更多