首页 > 解决方案 > Laravel收到错误未定义的变量

问题描述

我正在尝试取出 STEAM_ID 来昵称。

示例:我有一个名为 player_id 的表行,另一个表 users 的行名为 username。我正在尝试将 STEAM_ID 转换为用户名。示例:STEAM_0:0:1236546695 到用户名:ADMIN。

代码:

public function index()
{
    $this->title('Banned players');
    $this->indexPage([
        'buttons'       => null,
        'brightenFirst' => false,
        'sortby' => 'bid',
        'tableHead'     => [
        'ID' => 'id',
            'Player'           => 'player_id',
            'Length' => 'length',
            'Reason' => 'reason',
            'Banned by' => 'admin',
        ],
        'tableRow'      => function($bans_bans)
        {
            return [
            $bans_bans->bid,
                $bans->banusername,
                $bans_bans->ban_length,
                $bans_bans->ban_reason,
                $bans_bans->admin_id,
            ];
                $bans->banusername = User::where('steam_id', '=', $bans_bans->player_id)->first()->username;
        },
        'actions'       => null,
    ], 'front');
}

但出现错误:

未定义变量:bans

有什么帮助吗?我是 laravel 的新手,所以不要生我的气!谢谢你们的回答!

标签: phpmysqllaravel

解决方案


您正在使用$bans而不是$bans_bans错误地使用。有2个地方你需要改变它。试试这个代码:

return [
    $bans_bans->bid,
    $bans_bans->banusername,
    $bans_bans->ban_length,
    $bans_bans->ban_reason,
    $bans_bans->admin_id,
];
$bans_bans->banusername = User::where('steam_id', '=', $bans_bans->player_id)->first()->username;

推荐阅读