我的表中有一个字符串列,例如 status
,它包含 2 个字符串值作为常量,我想添加功能以便用户可以仅更新这 2 个字符串值的状态。这个问题的主要目的是我想在我的 Controller 中添加对 status
的验证,用户只能选择 online
或 offline
作为选项
所以状态列基本上可以是这两个字符串值
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/