【发布时间】:2020-05-25 19:32:46
【问题描述】:
我正在尝试验证 'parent_code' attr 关于 'level' 字段值
这是我想要实现的目标:
'parent_code' 仅在'level' 为 != 0 时才需要(这部分工作正常)
并且当它被设置时,它必须也存在于表'products'('product_code':将使用的列名)
我当前的代码(不能正常工作)
产品资源类
public function fields(Request $request) {
return [
ID::make()->sortable(),
Text::make('Product code', 'product_code')
->rules('required')
->creationRules('unique:products,product_code')
->updateRules('unique:products,product_code,{{resourceId}}')->hideFromIndex(),
Text::make('Product short name', 'product_short_name')->onlyOnForms(),
Textarea::make('Product name', 'product_name')
->rules('required')
->sortable()
->onlyOnForms(),
Text::make('Parent code', 'parent_code')
->rules(['required_if:level,2,4,6', 'exists:products,product_code'])
->hideFromIndex(),
Select::make('Level', 'level')->options([
'0' => 'Sector level',
'2' => 'H2',
'4' => 'H4',
'6' => 'H6',
])->rules('required')->sortable(),
];
}
创建产品表单
感谢您的帮助。
【问题讨论】:
-
只有在满足
required if的情况下才需要应用exists规则吗? -
完全正确,仅在需要时满足
标签: php laravel laravel-validation laravel-nova