Искать в массиве с помощью foreach - PullRequest
0 голосов
/ 01 августа 2020

В настоящее время я нажимаю разные входы в моем запросе с разными ключами каждый раз. Есть ли способ найти, например, ключ, содержащий «-id»?

Вот результат моего запроса (с dd):

результат запроса

Моей целью было бы сделать

foreach($request->contains('id') as $id) {
      //DOING SOME THINGS
}

Я пытался сделать это с помощью различных PHP функций, таких как strpos() или strpos_recursive(), но либо функции не работают. не существует или не дает ожидаемого результата. Целью также является получение значений, связанных с ключами.

Ответы [ 2 ]

2 голосов
/ 01 августа 2020

Laravel предоставляет несколько полезных функций, которые помогут вам в этом. Во-первых, используя all() в стандартном объекте request, вы можете увидеть элементы, поступающие через ввод. Затем, используя вспомогательную функцию contains, вы можете получить то, что вам нужно:

public function update(Request $request){
    foreach($request->all() as $key=>$val) {
          if(Str::contains($key, '-id')){
              // etc..

Кроме того, встроенная функция has() может помочь вам без необходимости l oop, если key точно 'id', но я думаю, что приведенное выше - это то, что вы ищете:

if($request->has('id')){
     $id = $request->input('id');
     // do something
}
0 голосов
/ 01 августа 2020
foreach(array_keys($request) as $r => $val){
    if(strpos($val, 'id')){
        //...
    }
}

функция array_keys дает ключи в вашем массиве. Я получил значение этих ключей с помощью foreach l oop. Я проверил, содержат ли ключи id с помощью функции strpos. Таким образом я достиг желаемого результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...