【问题标题】:Laravel validation to make sure 2 values are not present at same timeLaravel 验证以确保 2 个值不会同时存在
【发布时间】:2022-04-19 22:39:31
【问题描述】:

我需要验证一个请求,如果存在field1,那么field2 应该为空,反之亦然。我如何在 Laravel 中实现这一点?

【问题讨论】:

  • 有类似的答案,到目前为止你尝试过什么?
  • @KarlHill 值可以为空
  • @bhucho 我计划使用自定义验证器,但我想知道是否有一种 laravel 方式来做到这一点
  • 前面有一个简单的 jquery,发布时控制器中的逻辑非常简单。

标签: laravel laravel-5.8


【解决方案1】:

你可以试试这个:

$rules = array(
    'field1' => 'required_without:field2',
    'field2' => 'required_without:field1',
);

【讨论】:

【解决方案2】:

来自Laravel Docs:

#prohibits:anotherfield,...
如果正在验证的字段存在,则其他字段中的任何字段都不能存在,即使为空。

我想这就是你想要的:

public function rules()
{
  return [
   'field1' => 'prohibits:field2',
   'field2' => 'prohibits:field1',
}

这是什么意思?

根据上面的示例代码,我们可以知道,一旦出现field1,就不允许出现field2。同样,一旦出现field2,就不允许出现field1

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2021-10-04
    • 1970-01-01
    • 2020-04-29
    • 2016-06-22
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    相关资源
    最近更新 更多