【发布时间】:2016-07-28 21:38:16
【问题描述】:
我将filenames + their extensions 存储在files 表的filename 列下。我的问题是,由于 $request 对象中只存在名称而没有相应的扩展名,因此如果不先修改输入数据,我就无法使用唯一验证规则来验证文件名。示例:
// . . .
$this->validate($request, [
// Suppose the name of uploaded file is 'file'.
// The below rule will NEVER fail, because in the
// database, similar file will be stored as 'file.txt',
// thus 'file' != 'file.txt'
'filename' => 'unique:files'
]);
// . . .
有没有办法验证文件名而忽略它在数据库中的后缀(扩展名)?
【问题讨论】:
-
您在代码中的什么位置为文件名附加了扩展名?
-
@MarcoAurélioDeleu 验证通过后,我连接文件名及其扩展名并将它们存储在数据库中。这是一段相当强大的代码,真的需要在这里发布吗?
-
这取决于,我可能会为您提供解决方案,但这取决于您更改策略,这意味着在验证后停止附加扩展名并在之前执行。
-
对不起,我没有注意到您使用的是
$this->validate方法而不是Form Request验证。鉴于这一现实,您不能在调用$this->validate之前而不是之后添加扩展名吗?
标签: php validation laravel laravel-5 laravel-validation