首页 > 解决方案 > 如果输入被禁用,表单输入不验证

问题描述

我有一个被禁用的选择是页面不可编辑。这是我的代码:

 <select name="status" class="form-control" id="status" @if($page->editable == 0) disabled @endif>
   <option value="1" @if ($page->status == 1) selected @endif>Online</option>
   <option value="0" @if ($page->status == 0) selected @endif>Concept</option>
</select>

但是由于输入被禁用,他没有发送任何值。现在问题来了。我验证表格。这是我验证表单的代码:

$form = $request->validate([
    'status' => 'required',
]);

但是现在我得到了错误,因为值状态是空的并且是必需的。你现在如何设置他唯一需要的验证是表单没有被禁用?

我希望你能帮助我。

标签: phphtmllaravelformsvalidation

解决方案


首先,您应该使用单独的功能进行存储和更新,

对于商店,您的验证码似乎正确,但您可以添加boolean规则

$form = $request->validate([
    'status' => 'required|boolean',
]);

对于更新,您可以使用这样的验证规则,

$form = $request->validate([
    'status' => 'nullable|boolean',
]);

如果您使用相同的功能进行存储和更新,您应该发送editable状态值,您可以根据状态应用验证规则,editable如下所示,

if ($request->editable) {
  ....
 }
 else {
...
}

我希望这个能帮上忙


推荐阅读