在 laravel 等支持批量赋值的框架中,将表单 `name` 属性直接设为数据库列名(如 `nom`、`duree`)虽非强制标准,但属合理实践;关键在于保持前后端命名一致性、兼顾可维护性与安全性。
HTML 表单中 的 name 属性是服务器端接收数据的核心标识符。你当前采用 nom、duree、kilometre、image_emplacement 等与数据库列名完全一致的命名方式,在 Laravel 中确实能高效利用 $request->validate() 和模型的 fillable 批量赋值(Mass Assignment),显著减少冗余映射代码:
// 示例:Laravel 控制器中简洁处理
$session = Session::create($request->validate([
'nom' => 'required|string|max:255',
'duree' => 'required|integer|min:1',
'kilometre' => 'nullable|numeric|min:0',
'image_emplacement' => 'nullable|file|mimes:png,jpg,jpeg',
'lien_emplacement' => 'nullable|url',
'localisation' => 'required|exists:localisations,localis
ation_id'
]));✅ 这种做法的优势包括:
⚠️ 但需注意以下关键前提与边界:
? 总结建议:
你的命名策略本身并无技术错误,反而是 Laravel 生态中被广泛采用的务实方案。重点不在于“是否用数据库列名”,而在于是否建立了清晰的命名契约:前端表单 name → 后端验证规则 → 模型 fillable → 数据库 Schema,四者需严格对齐且受控。只要坚守 fillable 白名单原则、规避敏感字段暴露,并在团队内形成文档共识,xxx_xxx 风格就是一种简洁、可靠、可扩展的实践。