新手用 Laravel 搭博客最常卡在路由未生效、模型关系查不到数据、表单提交 419 错误三类问题;根源是默认配置与直觉偏差:路由须置于 routes/web.php 或显式加 web 中间件,Post 模型需声明 $fillable,分页 404 需检查 APP_URL 和服务器重写规则。
新手用 Laravel 搭博客架构,最常卡在「路由没生效」「模型关系写对了但查不出数据」「表单提交后 419 错误」这三类问题上——不是 Laravel 太难,而是默认配置和直觉有偏差,得先绕开几个默认陷阱。
Laravel 8+ 默认把 routes/web.php 自动套进 web 中间件组,但如果你手抖新建了 routes/blog.php 或直接在 routes/api.php 里写博客路由,就会发现:CSRF 验证失败、Session 读不到、重定向不带 Flash 数据。
博客文章创建时用 Post::create($request->all()) 却报错 “Add [title] to fillable property”,是因为 Laravel 默认禁止批量赋值(mass assignment),防止字段被恶意注入。
protected$fillable= ['title','slug','content','published_at'];
本地 php artisan serve 跑得好好的,部署到 Nginx 后点分页链接跳转成 /page/2 但返回 404——大概率是 URL 生成或服务器配置没对齐。
真正卡住新手的,往往不是语法错误,而是这些“默认不报错但就是不动”的配置断层。Laravel 的优雅建立在约定之上,而博客这类 CRUD 密集型应用,最容易在中间件、模型保护、URL 构建这三个环节悄悄越界。
路由定义必须显式加 web 中间件组
Post 模型要主动声明 $fillable 或用 create() 前校验
分页链接 404?检查 APP_URL 和 Nginx/Apache 重写规则