php - 验证 POST 变量的问题
问题描述
我有一个同名的form
多个。inputs
我正在使用js动态添加更多。
<input type="text" name="links[]" id="addmore" class="form-control url-link" placeholder="Enter full url">
在我的php 控制器中,我在检查是否$_POST['links']
已设置且不为空后更新 db:
if (isset($_POST['links']) && !empty($_POST['links'])) {
foreach ($_POST['links'] as $value) {
$link = new LessonLinks;
$link->lesson_id = $lesson->id;
$link->url = $value;
$link->save(false);
}
}
我面临的问题是,即使$_POST['links']
是空的并且在控制台中我可以看到它是,当form
提交时,foreach
代码执行并且我在我的数据库中得到空白行。这里有什么问题?没关系,我正在使用 Yii。
解决方案
您可以通过额外的空检查跳过空元素。像这样的东西应该工作:
if (!empty($_POST['links'])) {
foreach ($_POST['links'] as $value) {
if (!empty($value)) {
$link = new LessonLinks;
$link->lesson_id = $lesson->id;
$link->url = $value;
$link->save(false);
}
}
}
推荐阅读
- bash - 如何修复 if/while 语句中的退出代码
- javascript - 如何将 Javascript 数组与 Papa Parse row.data 数组进行比较
- ssm - 如何在 SSM 中使用 @Autowired?它总是找不到映射器
- stata - 从 inrange() 函数中排除值
- vue.js - Vuex 状态更改不会刷新 Vue on Web
- virtualbox - 如何在 VirtualBox 中创建差异(多附加)磁盘
- c# - 通过cmd启动程序时判断进程是否已经结束
- azure - 如何读取大型 JSON 文件作为 Azure 流分析的输入
- spring - 如何使用 feign 发送一个空列表作为参数?
- macos - 无法编译基本的 rust 文件