laravel验证更新:它必须';必需的';仅当存储的记录为空时

laravel验证更新:它必须';必需的';仅当存储的记录为空时,laravel,laravel-validation,Laravel,Laravel Validation,我有一份文件需要确认: public function update(request $request, Sight $sight) { $validator = Validator::make($request->all(), [ 'img' => 'required|image|max:3000', ... 如果存储记录中只有“img”字段为空,则该字段必须为“必需” 可能吗?如果 例: 这是PHP,它是动态的。我们有条件和变

我有一份文件需要确认:

public function update(request $request, Sight $sight)
   {
     $validator = Validator::make($request->all(), [
         'img' => 'required|image|max:3000',
         ...
如果存储记录中只有“img”字段为空,则该字段必须为“必需”


可能吗?

如果

例:


这是PHP,它是动态的。我们有条件和变量以及所有那些有趣的东西。您可以控制包含要使用的所有规则的字符串,并在其中拥有模型。只要建立你的字符串

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

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

这是一种不用扩展任何内容的方法。

当然有可能,你有模型,你可以写条件句;您可以控制分配给
'img'
的字符串。您可以使用自定义验证程序laravel.com/docs/5.5/validation#自定义验证规则?它们的条件不基于输入中的任何内容或输入中是否存在其他字段
public function update(Request $request, Sight $sight)
{
    $required = $sight->img === null ? 'required|' : '';

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