laravel验证更新:必须要求'仅当存储的记录为空时

时间:2017-12-06 18:16:07

标签: laravel laravel-validation

我已经申请验证:

public function update(request $request, Sight $sight)
   {
     $validator = Validator::make($request->all(), [
         'img' => 'required|image|max:3000',
         ...

必须“必须”,如果只是' img'存储记录中的字段为空。

有可能吗?

2 个答案:

答案 0 :(得分:1)

这是PHP,它是动态的。我们有条件和变量以及所有有趣的爵士乐。您可以控制包含要使用的所有规则的字符串,并在那里拥有模型。只需构建你的字符串。

public function update(Request $request, Sight $sight)
{
    $required = $sight->img === null ? 'required|' : '';

    $validator = Validator::make($request->all(), [
        'img' => $required .'image|max:30

这是一种方法,但没有扩展任何东西。

答案 1 :(得分:0)

尝试使用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,',
         ...