【问题标题】:Laravel - Undefined property: Illuminate\Database\MySqlConnection::$usernameLaravel - 未定义的属性:Illuminate\Database\MySqlConnection::$username
【发布时间】:2019-10-18 13:21:03
【问题描述】:

我写了一个查询来将参数从视图传递到控制器,我得到了这个错误:

未定义属性:Illuminate\Database\MySqlConnection::$username

查看传参

<td width="25%"><a class="btn btn-info" href="{{ route('gamesListDetail',$game->id) }}">{{ $game->name }}</a></td>

接收控制器

    public function gamesListDetail($id = null)
    {
    $gamelists = DB::table("platform_games")
        ->select("platform_games.id", "platform_games.username","game_player.game_id")
        ->join("game_player","game_player.game_id","=","platform_games.id")
            ->where('platform_games.id',$id)
            ->take(5);
        return view('soccerrave.games.gamesListDetail', compact('gamelists'));
    }    

接收视图

    <tbody>
        @foreach($gamelists as $key => $gamelist)
            <tr>
                <td>{{ ++$key }}</td>

                <td>{{ $gamelist->username }}</td>


            </tr>
        @endforeach
            <tr>
            <td colspan="8">
                {{ $gamelists->links() }}
            </td>
            </tr>         
    </tbody>

我希望视图根据参数显示前 5 个数据。但是我收到了这个错误:

未定义属性:Illuminate\Database\MySqlConnection::$username

【问题讨论】:

    标签: laravel


    【解决方案1】:

    Documentation 说:

    跳过/采取

    限制从查询返回的结果数量,或跳过 给定查询中的结果数量,您可以使用skiptake 方法:

    $users = DB::table('users')-&gt;skip(10)-&gt;take(5)-&gt;get();

    所以通过例子我们看到take方法之后必须有get()调用。

    所以修复你的代码:

    public function gamesListDetail($id = null)
    {
        $gamelists = DB::table("platform_games")
                         ->select(
                           "platform_games.id", 
                           "platform_games.username",
                           "game_player.game_id"
                         )
                         ->join(
                           "game_player",
                           "game_player.game_id", "=", "platform_games.id"
                         )
                         ->where('platform_games.id', $id)
                         ->take(5)
                         ->get(); // this one is required
    
        return view('soccerrave.games.gamesListDetail', compact('gamelists'));
    }   
    

    【讨论】:

      猜你喜欢
      • 2021-09-15
      • 2018-11-18
      • 2016-07-08
      • 1970-01-01
      • 2020-05-04
      • 2014-11-23
      • 2017-03-05
      • 2021-09-23
      • 2018-09-29
      相关资源
      最近更新 更多