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

Laravel 5.6中articles/create路由无法访问的问题求助

排查与解决步骤

兄弟,我之前也碰到过一模一样的问题,大概率是路由冲突或者匹配顺序搞的鬼,给你几个具体的排查方向和解决办法:

1. 优先排查资源路由冲突

这是最常见的原因——如果你已经在web.php里定义了articles的资源路由(比如Route::resource('articles', ArticleController::class)),Laravel会自动生成一套默认路由,其中包含articles/{article}这个用于匹配单篇文章详情的路由。

如果你的自定义articles/create路由定义在资源路由之后,Laravel会优先匹配articles/{article},把create当成文章ID去查找,自然找不到对应资源返回404。

解决办法:

  • 把自定义的articles/create路由放在资源路由前面,让Laravel先匹配到它:
    // 先定义自定义路由
    Route::get('articles/create', 'ArticleController@create')->name('articles.create');
    // 再定义资源路由,同时排除create方法避免重复
    Route::resource('articles', ArticleController::class)->except(['create']);
    
  • 或者直接用资源路由自带的create方法,资源路由默认就会生成articles/create指向ArticleController@create,你可以运行php artisan route:list查看所有已注册路由,确认是否已经存在这条路由。

2. 清除路由缓存

如果你之前运行过php artisan route:cache生成了路由缓存,修改路由后新的配置不会立即生效,需要清除缓存:

php artisan route:clear

3. 检查是否有通配符路由干扰

看看web.php里有没有类似Route::get('articles/{any}', ...)这种宽泛的通配符路由,并且定义在articles/create前面——它会把create当成{any}的参数,优先匹配导致404。

4. 验证路由列表

最后运行php artisan route:list命令,查看所有已注册的路由,确认articles/create是否存在,以及它的匹配顺序是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:40:06