laravel - 存储路径上的 Laravel 验证
问题描述
作为 Laravel 验证的示例:
$validatedData = $request->validate([
'title' => ['required', 'unique:posts', 'max:255'],
'body' => ['required'],
]);
我想在 storage 中添加路径是否存在。
Storage::exists('/path/to/your/directory');
基于此,我想做类似的事情:
$validatedData = $request->validate([
'title' => ['required', 'unique:posts', 'max:255'],
'body' => ['required'],
'path' => ['storage_file_exists_or_not']
]);
如何实现。谢谢。
解决方案
您可以使用创建自定义规则
php artisan make:rule StorageFileExists
并在 pass 函数中指定您的条件并写下您的信息。
<?php
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
use Illuminate\Support\Facades\Storage;
class StorageFileExists implements Rule
{
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
return (Storage::exists($value)) ? false : true;
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
return 'File is present.';
}
}
并像这样编写验证规则
$request->validate([
'path' => new StorageFileExists(), // your Rulename
]);
推荐阅读
- c# - 在 Akka.net 中忽略 Stop() 之后收到的消息
- python - 使用 EZDXF 库根据句柄查找 .dxf 实体
- azure - 计划的网络作业开始但失败
- php - 为什么 PDO::PARAM_LOB 会导致 Allowed memory size exhausted 错误?
- javascript - 如何在javascript中将这两个数组组合成一个3d数组
- memory - 我如何在 java 8 中获取 GCInfo?
- node.js - 如何使用nodejs中的unirest在url中传递多个查询参数
- ssas - 在 MDX 中计算单元格中的事实数
- docker - 如何使 docker compose 状态运行,目前它在 docker-compose up 后停止
- php - PHP使用空值排序位置但保持结构