Laravel проверить ввод в массиве - PullRequest
1 голос
/ 08 мая 2020

Как я могу проверить, существует ли входное значение моей формы в массиве контроллера?

Код

$admins = User::role(['admin', 'superadmin'])->pluck('id'); // get array of admins id

if($request->input('user_id') == $admins) { // if user_id is include admins id...
 // do something
} else {
 // do something else
}

Ответы [ 4 ]

2 голосов
/ 08 мая 2020

Используйте in_array ( docs ), чтобы проверить, существует ли что-то в массиве.

if(in_array($request->input('user_id'), $admins)) { // if user_id is include admins id

1 голос
/ 08 мая 2020

Вы также можете выполнить это в одном запросе:

$user_admin = User::role(['admin', 'superadmin'])->find($request->input('user_id')); // returns null if not found or the $user if found

if($user_admin) { /
 // do something
} else {
 // do something else
}
1 голос
/ 08 мая 2020

Попробуйте следующее:

if(in_array($request->input('user_id'), $admins)) { // if user_id is include admins id...
 // do something
} else {
 // do something else
}
0 голосов
/ 08 мая 2020

Если вы работаете с коллекциями , вы можете использовать их методы.

В этом случае вы можете использовать метод contains().

$admins = User::role(['admin', 'superadmin'])->pluck('id'); //this return a collection

if($admins->contains($request->input('user_id'))) { // use the contains method of collection
 // do something
} else {
 // do something else
}

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