#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*',
]);
И т.д…
Однако в этом примере он возвращает пустой массив любым способом /./*_. С точками, тире и т. Д. И т. Д.
Как я могу тогда принять в переменную только несколько атрибутов запроса с неизвестными именами?
Спасибо.
Ответ №1:
Вы можете понять свои ключи запроса с array_keys($request->all())
помощью .
Наконец, вы можете решить, какой ключ вы ищете.
Комментарии:
1. Это не поможет, потому что я хочу принимать только входные данные с именем enemyPlayers, а поскольку другие входные данные могут быть обнулены, индексирование не помогает. Там больше входных данных, чем в этом примере, я не могу передать в array_keys() «Вражеские игроки » в качестве аргумента. Это не работает.
2. Ну, это помогает, конечно, но по-другому 😉
3. @WNR Я так счастлив, что помог тебе, удачи 😉
Ответ №2:
Хорошо, сделал это по-другому.
$enemyPlayers = [];
$requestArray = array_keys($request->all());
foreach($requestArray as $player)
{
if (str_contains($player, 'enemyPlayer')) {
array_push($enemyPlayers, $player);
}
}