Laravel 验证多个字符串选项

标签 laravel validation constants

我的表中有一个字符串列,例如 status,它包含 2 个字符串值作为常量,我想添加功能以便用户可以仅更新这 2 个字符串值的状态。这个问题的主要目的是我想在我的 Controller 中添加对 status 的验证,用户只能选择 onlineoffline 作为选项

所以状态列基本上可以是这两个字符串值

  protected $validation = [
        'status' => 'string:online, offline
    ];

我知道上面的方法不起作用,但我需要类似的东西来验证字符串列的多个常量值。

这些是我需要使用的状态常量

public const ONLINE = 'online';
public const OFFLINE = 'offline';

有没有一种方法可以使用这些常量添加对可见性字段的验证?一些帮助会很棒。

下面是完整的类文件:

protected $request;

protected $user;


protected $validation = [
    'name' => 'max:10'
];

protected $required = [
    'name'
];

public function __construct(Request $request = null)
{
    $this->request = $request;
}

最佳答案

您可以使用常量来定义可能的选项:

use Illuminate\Validation\Rule;

$validation = [
        'status' => [Rule::in([Class::ONLINE,Class::OFFLINE])]
    ];

或者更好的是,定义常量 STATUSES 列出您类中所有可能的状态

public const STATUS_ONLINE = 'online';
public const STATUS_OFFLINE = 'offline';
public const STATUSES = [self::ONLINE, self::OFFLINE];

并使用那个常量

use Illuminate\Validation\Rule;

$validation = [
        'status' => [Rule::in(Class::STATUSES)]
    ];

关于Laravel 验证多个字符串选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60189193/

相关文章:

c++ - C++中的const参数和const方法

php - 对一个命令使用不同的 PHP 版本 CLI 可执行文件

laravel - 获取最后一个附加模型的 ID

php - Laravel 5.1 bcrypt 和登录

validation - 自定义 Django 表单错误消息中的模型验证值

ruby-on-rails - 验证在 Rails 中至少选中了一个复选框(非 HABTM)

c++ - 仅允许在 QDoubleValidator 的范围内进入 QLineEdit

编译 const GdkPixdata : "error: initializer element is not constant"

php - Laravel 排序关系

ruby-on-rails - 在rails中,在哪里放置一个根据当前日期变化的常量(变量?)?