【问题标题】:ErrorException preg_replace(): Parameter mismatch, pattern is a string while replacement is an array. LaravelErrorException preg_replace(): 参数不匹配,pattern 是字符串,replacement 是数组。拉拉维尔
【发布时间】: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


【解决方案1】:

我的理解是,您需要一个循环来获取所有这些值并保存到数据库。

我会做的是:

$subjects_studied = Input::get('subjects_studied');
for ($i=0; $i < count($subjects_studied) ; $i++) { 
    $subject = new ApplicationForm;
    $subject->subjects_studied = $subjects_studied[$i]
    $subject->save(); 
}

或尝试使用 foreach

foreach ($subjects_studied as $key => $value) {
    $subject = new ApplicationForm;
    $subject->subjects_studied = $value
    $subject->save();
}

祝你好运

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 2017-03-26
    相关资源
    最近更新 更多