Php Laravel验证-验证中的逻辑-仅在参数为true时验证特定字段

Php Laravel验证-验证中的逻辑-仅在参数为true时验证特定字段,php,validation,laravel,Php,Validation,Laravel,因此,如果用户能够编辑描述,则只应验证描述字段。否则,它应该被忽略 我目前正在这样做: public function rules() { $rules = user()->can('edit-description') ? ['description' => 'max:120'] : null; return $rules += [ 'name' => 'required',

因此,如果用户能够编辑描述,则只应验证描述字段。否则,它应该被忽略

我目前正在这样做:

  public function rules()
    {
        $rules = user()->can('edit-description') ? ['description' => 'max:120'] : null;
        return $rules += [
            'name'     => 'required',
            'avatar'   => 'required|active_url',
            'timezone' => 'required',
        ];
    }

然而,我确实认为有更好的方法来做到这一点。我还可以如何实现这一点?我不认为这是最好的方法。

对我来说似乎是一个好方法。这种方法怎么样:
rules['description']=user()->cannot('edit-description')?:'required'
对我来说似乎是一个很好的方法,这样做怎么样:
规则['description']=user()->cannot('edit-description')?:'required'