【问题标题】:Laravel - Get parameter from URI and receive database info based on that parameterLaravel - 从 URI 获取参数并根据该参数接收数据库信息
【发布时间】:2017-04-26 11:47:46
【问题描述】:

我正在使用 laravel,我需要从 URL 获取用户名,然后从数据库中获取基于该用户名的信息,我不知道如何实现这一点。有人可以帮我吗?

Route::get('/profile/{username}', 'ProfileController@show');

我不知道如何在控制器中调用它并在视图中发送它,然后如何在视图中调用。

public function show($username)
{
  User::where('username', $username)->get();
  return view('profile/index', ['username' => $username]);
}

如何在视图中显示该行的内容?

已经谢谢了!

【问题讨论】:

    标签: database laravel parameters


    【解决方案1】:

    您应该阅读有关controllersroutes 的信息。您的控制器应如下所示:

    public function show($username)
    {
        User::where('name', $usename)->get();
    

    这里的$username 变量将包含来自URI 的{username} 部分。

    【讨论】:

    • 但是我现在如何在页面本身上显示该行中的内容呢?谢谢你的第一个回答
    • 这是正确的答案。至于你的其他问题,你应该看看这个视频,他们解释得非常好,你很快就会开始。 laracasts.com/series/laravel-5-fundamentals
    • 在这些视频中找不到我需要的东西 :(
    【解决方案2】:

    要显示该用户的数据,请尝试使用以下代码。

    项目名称/app/Http/routes.php

    Route::get('/profile/{username}', 'ProfileController@show');
    

    项目名称/app/Http/Controllers/ProfileController.php

    public function show($username)
    {
        $user_data = User::where('username', $username)->first();
        return view('profile.index', ['username' => $username, 'user_data' => $user_data]);
    }
    

    项目名称/资源/views/profile/index.blade.php

    <div class="container">
        <div class="row">
            <ul>
                <li>Username: {{ $username }}</li>
                <li>Name: {{ $user_data->name }}</li>
            </ul>
        </div>
    </div>
    

    请注意:我假设username 是唯一的;所以我使用了first(),你在表中有usernamename字段,这些字段与用户模式相关联。

    以上代码已在 Laravel 5.2 上测试并运行。并基于上述假设。

    希望对你有帮助。

    【讨论】:

    • 它做到了,按照原来的方式弄清楚了,我不知道出了什么问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    • 2013-05-10
    相关资源
    最近更新 更多