route()、url()、secure_url() 三函数足矣:route()需命名路由且参数键名严格匹配占位符;url()依环境协议,secure_url()强制HTTPS;重定向推荐redirect()->route()以保兼容。
别拼字符串,用、、三个函数就够了,其他都是绕路。
route() 必须配命名路由,否则直接报错
它不认 URI 路径,只认你写在
里的名字。没命名就调用
,会抛出
。
路由定义必须带
:比如
传参键名必须和 URI 占位符完全一致:
合法;
或
都会报
可选参数(如
)可以不传,传了也得用对应键名:
→
;
→
查询参数(
)不能塞进
数组里——它只管路径部分。要加 query,得手动拼:
,注意中文或特殊字符需
url() 和 secure_url() 的区别不是“有没有 HTTPS”,而是“听不听话”
看当前请求协议或
配置;
根本不看,硬切 HTTPS。
Laravel 13.2.0
PHP中文网提供Laravel 13.2.0版本下载,Laravel框架 是基于 PHP 8.3+ 的高性能框架,官方推荐通过 Composer 安装。它内置 AI SDK、JSON:API Resources 及原生向量搜索,支持属性驱动开发与队列路由,大幅提升开发效率。相比旧版,13.2.0 优化了缓存 TTL 管理与实时通信,无需 Redis 即可横向扩展。作为现代 Web 开发首选,它兼顾安全与极速体验,助您快速构建企业级应用。
下载
在
下生成
;在生产 HTTPS 环境下生成
永远是
,哪怕你在本地
开发也强制加
两者都不校验路由是否存在,也不支持参数绑定——所以别拿它生成
这类动态地址,纯静态路径或资源链接才用
反向代理后
可能出错(比如显示
却实际走
),这时要在
里加:
重定向时别混用 redirect()->route() 和 to_route()
二者底层完全一样,
是 Laravel 9.25+ 才有的语法糖,仅限新项目或确认版本 ≥ 9.25 时可用。
兼容所有 Laravel 7+
更短,但低版本会报
闪存数据统一用
:比如
,目标页用
读取
参数规则和视图中
完全一致——别以为重定向就能松一点,
一样报错
最容易被忽略的点:可选参数传
会被自动忽略,但传空字符串
或
不会——
会生成
(末尾多一个斜杠),而
才是干净的
。
route()url()secure_url()->name('xxx')route('xxx')InvalidArgumentException: Route [xxx] not defined->name()Route::get('/user/{id}', [UserController::class, 'show'])->name('user.show');route('user.show', ['id' => 123])['user_id' => 123][123]Missing required parameters{slug?}route('post.show', ['id' => 5, 'slug' => 'hello'])/post/5/hello['id' => 5]/post/5?q=xxxroute()route('post.edit', ['id' => 5]) . '?from=modal'urlencode()url()APP_URLsecure_url()url('css/app.css')http://localhosthttp://localhost/css/app.csshttps://yoursite.com/css/app.csssecure_url('css/app.css')https://yoursite.com/css/app.csshttp://localhosthttps:///post/{id}url()httphttpsAppServiceProvider::boot()app('url')->forceRootUrl(env('APP_URL'));to_route()return redirect()->route('posts.index', ['category' => 'news']);return to_route('posts.index', ['category' => 'news']);Function to_route not found->with()to_route('users.index')->with('status', '用户已创建'){{ session('status') }}route()redirect()->route('user.update', [123])null''0route('post.show', ['id' => 5, 'slug' => ''])/post/5/['id' => 5, 'slug' => null]/post/5