laravel 验证更新:必须 'required' 仅当存储记录为空时
laravel validation update: It must 'required' only if stored record is empty
我有一个验证文件:
public function update(request $request, Sight $sight)
{
$validator = Validator::make($request->all(), [
'img' => 'required|image|max:3000',
...
必须是'required',如果存储记录中只有'img'字段为空。
可能吗?
尝试使用required_if
rule
例如:
// In the following example the field will be required only if the img
// parameter is empty or null
$validator = Validator::make($request->all(), [
'img' => 'image|max:3000',
'field' => 'required_if:img,',
...
这是PHP,是动态的。我们有条件和变量以及所有有趣的爵士乐。您控制包含您要使用的所有规则的字符串,并且那里有模型。只需构建您的字符串。
public function update(Request $request, Sight $sight)
{
$required = $sight->img === null ? 'required|' : '';
$validator = Validator::make($request->all(), [
'img' => $required .'image|max:30
这是一种无需扩展任何内容的方法。
Laravel 有时会调用一个验证选项:
在某些情况下,您可能希望 运行 仅当某个字段存在于正在验证的数据中时才对该字段进行验证检查。要快速完成此操作,请将 sometimes 规则添加到您的规则列表中:
$validator = Validator::make($request->all(), [
'img' => 'sometimes|required|image|max:30',
]);
在上面的示例中,img 字段只有在 $request
中存在时才会被验证
#source https://laravel.com/docs/8.x/validation#validating-when-present
我有一个验证文件:
public function update(request $request, Sight $sight)
{
$validator = Validator::make($request->all(), [
'img' => 'required|image|max:3000',
...
必须是'required',如果存储记录中只有'img'字段为空。
可能吗?
尝试使用required_if
rule
例如:
// In the following example the field will be required only if the img
// parameter is empty or null
$validator = Validator::make($request->all(), [
'img' => 'image|max:3000',
'field' => 'required_if:img,',
...
这是PHP,是动态的。我们有条件和变量以及所有有趣的爵士乐。您控制包含您要使用的所有规则的字符串,并且那里有模型。只需构建您的字符串。
public function update(Request $request, Sight $sight)
{
$required = $sight->img === null ? 'required|' : '';
$validator = Validator::make($request->all(), [
'img' => $required .'image|max:30
这是一种无需扩展任何内容的方法。
Laravel 有时会调用一个验证选项:
在某些情况下,您可能希望 运行 仅当某个字段存在于正在验证的数据中时才对该字段进行验证检查。要快速完成此操作,请将 sometimes 规则添加到您的规则列表中:
$validator = Validator::make($request->all(), [
'img' => 'sometimes|required|image|max:30',
]);
在上面的示例中,img 字段只有在 $request
中存在时才会被验证#source https://laravel.com/docs/8.x/validation#validating-when-present