请问一下 DB::table 使用前面加了一个 \ 有特殊用途吗?

public function deleted(Topic $topic)
    {
        \DB::table('replies')->where('topic_id', $topic->id)->delete();
    }

自己测试了一下,去掉\程序报错,前面引用 use Illuminate\Support\Facades\DB 程序是正常了,是相当于use的功能吗?但是文档里没有找到这方面的介绍?请教一下大佬,还有别的用处吗?

Practice makes perfect !
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
Epona
最佳答案

前面加\ 不用写全部的Facades路径是Laravel中的 alias 功能,具体在config/app.php中的aliases 数组中。使用\DB就会调用alias,然后替换成Facade等等。另外去掉\之后的问题就是命名空间的问题了。

4年前 评论
weiqier (楼主) 4年前
讨论数量: 6

命名空间了解一下

4年前 评论
╰ゝSakura

其实就是命名空间的问题,就是你要告诉程序,这个类是在哪里的,具体可以看PHP官方文档https://www.php.net/manual/zh/language.namespaces.rationale.php

4年前 评论
Epona

前面加\ 不用写全部的Facades路径是Laravel中的 alias 功能,具体在config/app.php中的aliases 数组中。使用\DB就会调用alias,然后替换成Facade等等。另外去掉\之后的问题就是命名空间的问题了。

4年前 评论
weiqier (楼主) 4年前

这个表示根命名空间,就像一个绝对路径,不加的话,就是相对于当前的命名空间的,类似相对路径。

4年前 评论

@Epona 加上\不是代表全局寻找这个类吗

4年前 评论
Epona

@轻描淡写 是的,全局寻找,然后就是 aliases 的作用了。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!