laravel - 由于是什么版本的 Laravel,使用 compact 传递给路由的变量需要和参数一样调用?
问题描述
我已将 Laravel 从5.8升级到8.0。
我注意到Laravel 6 升级指南中有关URL 生成的部分,但我也注意到不同的行为,这在任何升级指南中都没有描述(或者我可能遗漏了一些东西)。
在旧版本中,我可以使用compact()将任何变量放入路由,并且它与可能的路由参数匹配,例如,如果路由是
“xyz/{user}/{article}”并且我像“route( 'xyz', compact('superAdminUser', 'theBestArticle'))" - 这已自动正确传递到路由中。
现在变量的调用必须与 web.php 中定义的参数相同。让我们以博客文章为例。
Route::get('/article/{article}', 'ArticlesController@show')->name('articles.show');
// Correct in Laravel 5.8 and not in Laravel 8
route('articles.show', compact('post'))
// Correct in Laravel 8
route('articles.show', compact('article'))
我的问题是:自从 Laravel 的哪个版本以来,这种行为发生了变化?
解决方案
推荐阅读
- angular - JHipster 和 Angular - 实时编辑表 - 模板驱动的表单
- php - 在 Laravel 5 中的一对多关系中将外键设置为 Null
- r - R / RStudio:文件错误(文件,“r”):无法打开连接//德语// Macbook Air
- passwords - Ansible - 包含一个双引号的密码未正确解析
- api - 谷歌地图的 HTTPS 证书
- amazon-s3 - HTTP 请求已发送,等待响应... 403 Forbidden
- javascript - 我应该如何在 axios GET 请求中发送 JWT 令牌?
- linux - Powershell POST 到 Linux curl
- html - 引导卡作为显示数据的按钮
- ansible - Ansible:在循环中合并stdout_results dict项目的元素