如何从 Laravel 请求中获取多个未知名称输入

时间:2021-06-23 12:47:55

标签: laravel

您好,我有未知名称输入的请求,例如 Game234_3v3player_3 等。由于所有输入都可以为空且游戏编号未知,我这样验证:

$request->validate([
        '*_2v2player_*' => [
            'exists:users,name',
            'nullable',
        ],
        '*_2v2enemyPlayer_*' => [
            'exists:enemy_players_list,nickname',
            'nullable',
        ],
        '*_3v3player_*' => [
            'exists:users,name',
            'nullable',
        ],
        '*_3v3enemyPlayer_*' => [
            'exists:enemy_players_list,nickname',
            'nullable',

在验证中,这是有效的。但是,我想将请求的一部分存储在变量中。我试过的是:

        $data = $request->only([
        '*_1v1enemyPlayer_*',
        '*.2v2enemyPlayer.*',
        '*3v3enemyPlayer*',
        ]);

等等... 然而,在这个例子中,它以各种方式返回空数组/./*_。用点,破折号等,等等。 然后我如何才能将变量只包含几个未知名称的请求属性? 谢谢。

2 个答案:

答案 0 :(得分:1)

您可以使用 array_keys($request->all()) 了解您的请求键。

最后,您可以决定要查找的密钥。

答案 1 :(得分:0)

好的,换了一种方式。

    $enemyPlayers = [];

    $requestArray = array_keys($request->all());
    foreach($requestArray as $player)
    {
        if (str_contains($player, 'enemyPlayer')) {
            array_push($enemyPlayers, $player);
        }
    }