Как Laravel может проверить, осталось ли в POST-запросе пустое поле?Php

Кемеровские программисты php общаются здесь
Anonymous
Как Laravel может проверить, осталось ли в POST-запросе пустое поле?

Сообщение Anonymous »

Требование заключалось в обновлении ролей пользователей. Роль может быть пустой (оставленной пустой), одной или несколькими, как указано в поле формы roles[].

Вот форма просмотра. :

Код: Выделить всё

@foreach ($roles as $role)

roles->contains($role->id) ? 'checked' : '' }}>{{$role->name}}

@endforeach
Условие внутри UserController::update():

Код: Выделить всё

if ($request->roles) {
// update user roles
}
Все работает нормально, за исключением одного случая. Иногда пользователю приходится оставаться без какой-либо роли.

Код: Выделить всё

if($request->roles)
, isset($request->roles) и !empty($request->roles) .. все дают один и тот же старомодный ответ(, '', true/false).

Случай: когда назначена одна или несколько ролей :

Код: Выделить всё

  +request: ParameterBag {#41 ▼
#parameters: array:6 [▼
"_method" => "PUT"
"_token" => "a8oIPQFBMbhjanikX8v83qeOcfRE0N4UKTcTQDig"
"name" => "New User Name"
"email" => "newuser@testserver.asap"
"password" => ""
"roles" => array:2 [▼
0 => "2"
1 => "3"
]
]
}
Случай: когда не назначена роль ИЛИ необходимо удалить (отсоединить) ранее назначенную роль:

Код: Выделить всё

  +request: ParameterBag {#41 ▼
#parameters: array:5 [▼
"_method" => "PUT"
"_token" => "a8oIPQFBMbhjanikX8v83qeOcfRE0N4UKTcTQDig"
"name" => "New User Name"
"email" => "newuser@testserver.asap"
"password" => ""
]
}
Итак, вопрос (требование):

Как отличить, когда значение поля Форма сообщения HTML была отправлена ​​как пустая (здесь не отмечена галочкой) или в форме просмотра не было такого поля?
Есть ли в Laravel красноречивый* способ найти/перечислить форму файлы из объекта Request?

[PS: попытка использования другого скрытого поля или использование jQuery в интерфейсе не будет оценена]

Подробнее здесь: https://stackoverflow.com/questions/494 ... left-empty

Вернуться в «Php»