You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

web.php报错Cannot use positional argument after named argument

错误原因

这是PHP 8.0及以上版本的语法规则限制:函数传参时,只要前面使用了参数名: 值的命名参数格式,后续所有参数都必须同样使用命名参数格式传递,不能再使用省略参数名、按参数位置传值的位置参数,否则就会抛出Cannot use positional argument after named argument错误。
你的代码中,Route::get()的第一个参数使用了命名参数写法uri: 'scraper',但第二个参数直接传入控制器方法数组,没有指定对应参数名,属于位置参数,因此触发报错。

修复方案

两种修复方式任选其一即可:

  • 全量使用位置参数(Laravel路由的常规写法,最推荐)
    去掉路由定义里多余的命名参数前缀,统一按参数位置传值即可:
    Route::get('scraper', [\App\Http\Controllers\ScraperController::class, 'scraper'])->name('scraper');
    
  • 全量使用命名参数
    如果要保留命名参数写法,给Route::get()的第二个参数补上对应的参数名action,链式调用的name()方法传参保持格式统一即可:
    Route::get(uri: 'scraper', action: [App\Http\Controllers\ScraperController::class, 'scraper'])->name(name: 'scraper');
    

内容的提问来源于stack exchange,提问作者ilayda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 07:18:29