跳转到主要内容

什么是辅助函数

Laravel 提供了大量全局 PHP 函数(辅助函数)。它们大多用于框架内部,但你也可以在应用中自由使用。 辅助函数大致分为以下几类:
  • 数组 / 对象Arr:: 类和 data_get()
  • 数值Number::
  • 路径app_path()storage_path()
  • URLroute()url()asset()
  • 其他config()collect()auth() 等常用工具
全局辅助函数无需 use 声明即可任意调用。使用 ArrNumber 类时需要 use Illuminate\Support\Arr; 等 import。

数组辅助(Arr 类)

Arr::get() — 通过点号记法访问嵌套值

从多维数组中通过点号记法(foo.bar.baz)安全地取出嵌套值。键不存在时返回默认值。
data_get() 全局函数功能相同,还支持 Eloquent 关系等 Arrayable 对象,适用面更广。

Arr::set() — 向嵌套数组设置值

Arr::has() — 判断键是否存在

Arr::only() / Arr::except() — 只保留 / 排除某些键

Arr::pluck() — 从嵌套数组抽取指定键

Arr::first() / Arr::last() — 首个 / 末尾元素

Arr::flatten() — 多维数组扁平化为一维

Arr::wrap() — 确保为数组

若值不是数组则用数组包裹。null 会变为空数组。方便让函数参数灵活接受多种输入。

Arr::sort() — 排序

Arr::dot() / Arr::undot() — 点号记法互转

Arr::join() — 把数组连接为字符串

data_get() — 访问嵌套数据

Arr::get() 的通用版本,除数组外还支持对象、Eloquent 模型、集合。

数值辅助(Number 类)

Number::format()

Number::currency()

Number::fileSize()

Number::abbreviate()

Number::percentage()

路径辅助

获取应用内目录路径。即使部署环境改变也能返回正确路径。

URL 辅助

route()

url()

asset()

to_route()

其他常用辅助

config()

collect()

collect() 是进入集合的关键辅助。详见集合

auth()

blank() / filled()

blank()null、空字符串、纯空格、空集合、空数组视为 truefilled() 相反。

abort() / abort_if() / abort_unless()

dd() / dump()

dispatch()

encrypt() / decrypt()

env()

最佳实践是在 config/ 中调用 env(),而不是在控制器 / 服务类中直接使用;通过 config() 访问值。执行 php artisan config:cache 后,env() 可能不会返回预期值。

Arrcollect() 的选择

Arr:: 类作用于普通 PHP 数组,collect() 返回集合对象。
Eloquent 的结果本身就是集合,无需再用 collect() 包裹。若只是简单数组操作,Arr:: 更简洁。

小结

适合 Arr:: 的场景
  • 简单数组操作(嵌套键访问、键筛选等)
  • 不需要集合对象的开销
  • 想保持数组形式的结果
适合 collect() 的场景
  • 需要多个操作链式表达
  • 加工 Eloquent 结果(已是集合)
  • 想用 mapfiltergroupBy 等集合专属方法
最后修改于 2026年7月18日