【发布时间】:2014-11-27 19:17:26
【问题描述】:
我有一个接受值数组的表单输入字段:
<input name="subjects_studied[]" type="text" placeholder="" size="30" class="form-styles" >
在我的 routes.php 脚本中,我有一个这样的闭包:
Route::post('apply', function() {
$v = ApplicationForm::validate(Input::all());
if ( $v->passes() ) {
$data = array(
// 'subjects_studied' => Input::get('subjects_studied'),
'subjects_studied' => (is_array(Input::get('subjects_studied'))) ?
implode(" , " , Input::get('subjects_studied')) :
Input::get('subjects_studied'),
);
ApplicationForm::create($data);
}
}
我已经尝试了两种配置,它们都给我一个错误:
ErrorException
preg_replace(): Parameter mismatch, pattern is a string while replacement is an array.
作为最后一次掷骰子,我尝试了:
$subjects_studied = Input::get('subjects_studied');
foreach($subjects_studied as &$studied){
$_subjects[] = $studied;
}
$x = implode($_subjects);
$data = array('subjects_studied' => $x,)
您能帮我使用 laravel 将 HTML 表单中的值数组插入 MySQL 数据库吗?
【问题讨论】:
-
值数组是什么意思?这是一个字段吗?
-
是的,一个字段。用户可以增加他或她学习的科目——通过 jQuery 添加另一个科目按钮。这将复制
<input name="subjects_studied[]" type="text" placeholder="" size="30" class="form-styles" >元素。 -
它现在似乎可以工作了,一定是我的另一个表单元素出现问题而引发了该错误。
标签: laravel