首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel Storage::files()在不应该显示dotfiles时显示它

Laravel是一种流行的PHP开发框架,提供了丰富的功能和工具来简化Web应用程序的开发过程。其中的Storage类是Laravel框架中用于处理文件存储的工具类之一。

在Laravel中,Storage::files()方法用于获取指定存储驱动中的所有文件路径。默认情况下,该方法会返回所有文件,包括以点开头的隐藏文件(也称为dotfiles)。然而,有时我们可能不希望显示这些隐藏文件。

为了在不显示dotfiles的情况下使用Storage::files()方法,我们可以使用Laravel提供的过滤器功能。具体步骤如下:

  1. 在config/filesystems.php配置文件中,找到对应的存储驱动配置项(如local、s3等)。
  2. 在该配置项中,添加一个'filter'选项,值为一个回调函数或一个类方法的字符串表示。
  3. 这个回调函数或类方法应该接受一个文件路径作为参数,并返回一个布尔值,指示是否应该显示该文件。
  4. 在回调函数或类方法中,可以使用Laravel提供的Str类的startsWith()方法来判断文件路径是否以点开头,如果是则返回false,否则返回true。

以下是一个示例配置:

代码语言:txt
复制
'disks' => [
    'local' => [
        'driver' => 'local',
        'root' => storage_path('app'),
        'filter' => function ($path) {
            return !Str::startsWith(basename($path), '.');
        },
    ],
],

在上述示例中,我们为local存储驱动添加了一个filter选项,并指定了一个匿名函数作为过滤器。该匿名函数使用Str::startsWith()方法来判断文件路径是否以点开头,如果不是则返回true,表示应该显示该文件。

通过以上配置,当我们调用Storage::files()方法时,将不会返回以点开头的隐藏文件。

关于Laravel的文件存储功能和Storage类的更多信息,您可以参考腾讯云对象存储(COS)的相关产品和文档:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 自动化部署 - Laravel Deploy实战

    Deployer 是一个基于 SSH 协议的无侵入 web 项目部署工具,因为它不需要你在目标服务器上装什么服务之类的东西即可使用,它的原理就是通过 SSH 到你的机器去创建目录,移动文件,执行指定的动作来完成项目的部署...他支持多种框架:Laravel、Yii等 流程: 在本地使用 composer 安装 deployer 在 Linux 服务器添加账户与配置权限 项目 git 仓库允许服务器访问(clone 代码) 部署我们的...Default value is false. set('git_tty', true); // 分享文件即目录,通常也不用改,默认包含了 storage 目录 add('shared_files'...// 即 laravel 项目的 storage 文件夹 |--- .env // 即 laravel 项目的 .env 每次部署更新,会在 releases 下新建文件夹如 num,....env 和 storage 下的一些未加入代码库中的内部,部署时不会自动更新,因此有些情况下需要手动处理。

    2.5K30

    laravel+nginx配置好后报错500的一些问题记录,已解决

    include fastcgi.conf; } location / { try_files...和bootstrap/cache chmod -R 777 storage 四、检查laravel需要的PHP拓展是否都已经安装 ?...检查是否已经安装: php -m | grep 'json' 也可以在项目根目录下index.php文件中输出phpinfo()进行查看 假如nginx配置没问题,index.php文件中写入exit(...'cs');应该会在浏览器上显示出cs; 五、告诫一下大家的话 ngxin+laravel已经配置好,浏览器访问报错500,搞了一下午一直没有解决,搜索各种方式,没有任何提示,PHP报错也开了,nginx...从这里开始,主要是这里没继续执行),打印断点测试,然后发现是json拓展没有安装,php.ini里面没有配置 安装拓展(如何安装PHP拓展参考这个链接),配置php.ini,就解决了问题,所以有时候没思路时,

    1.6K10

    如何在Ubuntu 16.04上使用Deployer自动部署Laravel应用程序

    要开启此功能,它需要用户将代码推送到Internet上的存储库,然后Deployer会将代码复制到生产服务器。我们将使用Git(一种开源版本控制系统)来管理Laravel应用程序的源代码。...ssh-keygen -t rsa -b 4096 -f ~/.ssh/gitkey 您可能在本地计算机上有更多SSH密钥,因此请配置SSH客户端以了解连接到Git服务器时要使用的SSH私钥。...这是通过try_files指令完成的。我们希望它首先尝试将请求作为文件提供,如果找不到具有正确名称的文件,它应该尝试与请求匹配的目录提供默认索引文件。...如果失败了,它应该将请求作为查询参数传递给index.php文件。...── shared ├── .env └── storage 通过在服务器上运行以下命令来验证这一点,该命令将列出文件夹中的文件和目录: $ ls /var/www/html/laravel-app

    15.6K10

    基于Model Event模型事件的Laravel实时APP

    laravel/laravel mylaravelapp --prefer-dist 写一个TODO APP 写路由Route 在app/Http/routes.php中写上资源型路由: Route:...环境输入路由:http://laravelmodelevent.app:8888/,新开AB两个页面,然后在输入框里提交文本后: A页面输入后B页面只有刷新才能看到最新输入的文本,不能实时显示,当然...,输入的文本已经保存在model_event.items表里了: 页面里改变每一个item的checkbox后,该item的状态将会互换,在UI上显示也是上下位置互换,具体逻辑可以看views/index.blade.php...重点是:在A页面写入新文本,B页面不能实时显示。这还不是个实时APP。...=0或1) ItemDeleted:当删除一个item完成时触发 在项目根目录依次输入: php artisan make:event ItemCreated php artisan make

    5.6K31

    cell-blog 功能介绍与安装

    基于 Laravel7 开发,Markdown 语法的个人独立博客。Cell Blog, 也是我的毕业设计作品,目前已開源。...支持 Markdown, 文章实时预览效果 支持多种编程语言代码高亮 编辑器图片上传 后台上传文件管理 文章搜索 文章分类 文章标签 热门文章 随机格言 文章管理(发布,评论开关,排序) 自定义导航(显示开关...env 环境配置 1 2 3 4 5 6 7 APP_URL=http://localhost #使用本地文件系统存储文件时,必须填写正确地址 APP_DEBUG=false #关闭调试 DB_HOST...SystemController::load(); } 将博客网站根目录指向入口 public 目录 如果使用 Nginx,要设置伪静态 1 2 3 location / { try_files...$query_string; } 启动服务后,在浏览器打开http://localhost/admin/, 使用用户名admin和密码admin登录。

    37620

    Laravel 控制器:从 MVC 模式聊起

    将所有业务逻辑一股脑放到控制器听起来挺不错,但是控制器更适合承担的角色其实是负责对 HTTP 请求进行路由,因为还有很多其他访问应用的方式,比如 Artisan 命令、队列、调度任务等等,控制器并非唯一入口,所以不适合也不应该将所有业务逻辑封装于此...提到依赖注入,就绕不开服务容器,关于服务容器后面我们会单独讲解,而现在你只需了解服务容器是一个绑定多个接口与具体服务实现类的容器,而依赖注入则是在代码编写时以接口(或者叫做类型提示)方式作为参数,不必传入具体实现类...在 Laravel 中所有的控制器方法(包括构造函数)都会在服务容器中进行解析,这意味着所有方法中传入的可以被容器解析的接口/类型提示对应服务实现都会被自动注入,我们将这个过程称之为依赖注入。...5、资源控制器 有时候在编写控制器时命名方法名称可能是最困难的,好在 Laravel 为常见的 REST/CRUD 控制器(在 Laravel 中称之为「资源控制器」)提供了一套约定规则,并为此提供了相应的...$id . ' Link: ' . route('post.show', [$id]); } 在浏览器中访问 http://blog.test/post/1,页面显示如下: Post 1 Link:

    11.3K51

    如何使用 Yadm 优雅管理你的应用配置和数据

    工作方式 Yet Another Dotfiles Manager yadm 就像有一个版本的 Git,它只在你的 dotfiles 上运行。...实际上 yadm 底层依旧是使用 Git 来做管理的,即 yadm 在管理 dotfiles 的时候,实际上是用 Git 来进行版本控制、远程同步等操作的。...自动配置 使用 Yadm 来自动配置环境 咳咳咳,我们使用 yadm 工具不光光是可以管理我们的 Dotfiles 文件或者目录,而且还可以使用它的 bootstrap 功能来完成初始化电脑时许多工具的安装...这个特性只有在 gpg 命令可用的情况下才能工作。建议您在保存机密文件时使用私有存储库,即使这些文件是加密的。...yadm Docs - Templates yadm Docs - Alternate Files Alternate Files 使用上述的 Alternate Files 功能时,Yadm 为不同的操作系统

    1.3K40

    从零开始配置 vim(16)——启动界面配置

    这里就不过多演示了 定义中间部分 中间部分表示的是它显示为 Please Config your own center section 这块的内容。...它的每个部分对应着一条显示。...每条显示和功能我们可以使用如下字段来进行定制 icon : 当前显示图标 desc:某个功能的描述信息,后面会原样显示出来 shortcut:快捷键 action:在某项位置回车时执行的命令 我们按照官方给出的截图上的功能进行定义...再次打开,我们发现它已经可以显示这些内容了 并且我们在最后一项回车,发现它打开了当前配置文件 各位可以尝试一下,它并不能帮助我们自动将 shortcut 字段与 action 结合绑定为快捷键。...footer, '✨ ' .. key) end end print(footer) return footer end 我们再次重启 neovim 之后发现,它已经帮我们显示了它加载了哪些插件

    1.5K10

    【Laravel系统3.3】控制器与表单验证

    控制器与表单验证 在请求过程中,控制器往往是我们在做业务开发时绕不过的一环。从 MVC 理论的成熟到现代化的开发过程中,控制器一直扮演着重要的角色。...之前在讲路由的时候也说过这个问题,但是在 Laravel 中,实现了路由和控制器的解耦,所以我们的控制器是可以随意定义并且命名的,直接通过路由来进行绑定。...我们这里测试的是直接通过命令行创建的,看看它的代码。 action->uses = "App\Http\Controllers\ResourceTestController@index"; 在我们实例化所有路由时,都会创建一个 Route 对象...既然说到这里了,那么在 Laravel 框架中,其实也是有对应的表单验证的功能的,可以方便地让我们进行表单参数的验证。

    8.7K20

    Laravel 底层原理:门面(Facades)

    Laravel 的门面作为服务容器中底层类的“静态代理”,相比于传统静态方法,在维护时能够提供更加易于测试、更加灵活、简明优雅的语法。...在使用 Facades 时,有些地方还需要特别注意。 使用 Facades 最主要的风险就是会引起类作用范围的膨胀。...在开发与 Laravel 进行交互的第三方扩展包时,建议最好选择注入 Laravel 契约 ,而不是使用 Facades 的方式来使用类。...当用户调用 Cache Facade 中的任何静态方法时, Laravel 会从 服务容器 中解析 cache 绑定,然后在解析出的对象上调用所有的请求方法(本例中是 get)。...不过,这要求我们每次调用 publish 方法时,都要传递一个发布服务实例。 使用实时门面,我们可以在维持这种易于测试的前提下不必显式传递 Publisher 实例。

    1.4K10

    Laravel 使用Excel导出的文件中,指定列数据格式为日期,方便后期的数据筛选操作

    - Column formatting 参考文章:laravel-excel导出的时候写入的日期格式数据怎么在excel中正确显示成可以筛选的日期格式数据 提示 1....并且,无需手动 在天数后面拼接一个"\t" 调用参考 //指定下单日期,需要计算从 1900-01-01到目标日期的天数 ......} $sheet->rows($cellData); }); })->store('xlsx'); // 文件默认保存到storage...public function index() { $filePath = 'exports/users_'.time().'.xlsx'; //将文件存储到目录 “storage...导出的时候写入的日期格式数据怎么在excel中正确显示成可以筛选的日期格式数据 Laravel Excel 3.1 导出表格详解(自定义sheet,合并单元格,设置样式,格式化列数据)

    12610

    在 Laravel 中编写第一个 Artisan 命令

    Laravel 应用进行交互; Laravel 安装器,这个我们在框架安装部分已经提到过,比较简单,不再单独介绍。...我们在执行 php artisan 命令时,artisan 就指的是根目录下的 artisan 文件,所以命令需要在应用根目录下执行,然后 artisan 之后的部门都是作为请求参数被控制台应用获取并处理...make:request clear-compiled:移除编译过的类文件,比如缓存、Blade视图文件等 down:将应用切换到维护模式以便查找问题 up:将应用从维护模式恢复为正常模式 env:显示应用当前运行环境...:storage:link 生成一个软链 public/storage 指向 storage/app/public vendor:vendor:publish 用于发布扩展包中的公共资源 view:view...Commands; use Illuminate\Console\Command; class WelcomeMessage extends Command { /** * 命令名称,在控制台执行命令时用到

    3.1K20

    Laravel 底层原理:门面(Facades)

    Laravel 的门面作为服务容器中底层类的“静态代理”,相比于传统静态方法,在维护时能够提供更加易于测试、更加灵活、简明优雅的语法。...在使用 Facades 时,有些地方还需要特别注意。 使用 Facades 最主要的风险就是会引起类作用范围的膨胀。...在开发与 Laravel 进行交互的第三方扩展包时,建议最好选择注入 Laravel 契约 ,而不是使用 Facades 的方式来使用类。...当用户调用 Cache Facade 中的任何静态方法时, Laravel 会从 服务容器 中解析 cache 绑定,然后在解析出的对象上调用所有的请求方法(本例中是 get)。...不过,这要求我们每次调用 publish 方法时,都要传递一个发布服务实例。 使用实时门面,我们可以在维持这种易于测试的前提下不必显式传递 Publisher 实例。

    1.1K20
    领券