我使用的是Laravel 8,用户可以选择上传他们的头像图片。我试图设置的要求,用户必须改变他们的头像,如果它是默认的一个是"/images/company_logo_default.png"
内的数据库。由于某些原因,如果文件上传并再次显示验证消息,则不会保存。
在控制器中我有:
$default_avatar = "/images/company_logo_default.png";
有'avatar' => 'required|string|not_in:'.$default_avatar,
在$this->validate($request, [])
块和我的刀片文件有适当的php代码,这是:
<input id="avatar" type="hidden" class="form-control @error('avatar') is-invalid @enderror" name="avatar" value="{{ $company->avatar }}">
@error('avatar')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
和消息显示正确,如果提交按钮被点击,用户有默认的个人资料图片,但当我上传一个新的,它给消息再次没有保存。任何帮助或指导在正确的方向将是有帮助的,谢谢!
not-in 方法接受一个数组。
$default_avatar = "/images/company_logo_default.png";
应该像
$default_avatar = ["/images/company_logo_default.png"`];
'avatar' => [
'required',
'string',
Rule::notIn($default_avatar),
],
就像docs中所说的