Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法在Laravel 5.1中保存选择框选项_Php_Mysql_Drop Down Menu_Eloquent_Laravel 5.1 - Fatal编程技术网

Php 无法在Laravel 5.1中保存选择框选项

Php 无法在Laravel 5.1中保存选择框选项,php,mysql,drop-down-menu,eloquent,laravel-5.1,Php,Mysql,Drop Down Menu,Eloquent,Laravel 5.1,我正在使用Laravel 5.1进行我的第一个项目。在表单中使用选择框 {!!Form::select('animal_parent[]', array('1' => 'opt1', '2' => 'opt2', '3' => 'opt3', '4' => 'opt4',), null, ['id' => 'animal_parent', 'disabled' => 'disabled', 'multiple' => 'multiple',

我正在使用Laravel 5.1进行我的第一个项目。在表单中使用选择框

  {!!Form::select('animal_parent[]', array('1' =>  'opt1',  '2' =>  'opt2',  '3' => 'opt3', '4' => 'opt4',), null, ['id' => 'animal_parent', 'disabled' => 'disabled', 'multiple' => 'multiple', 'class' => 'form-control'])!!}
选择仅限于两个选项,需要保存在
动物
表的
雄性父母
雌性父母
两列中

表单中没有
男性家长
女性家长
元素名称。类似地,
animal
表中没有
animal\u parent
字段

在下面给出的代码中按预期设置值。但是,insert命令不反映新设置的值并抛出错误

helpers.php第671行中的ErrorException:preg_replace():参数不匹配,模式为字符串,而替换为数组

任何帮助都将不胜感激

第一次尝试使用变异体

public function setMaleParentAttribute()
{
    $parent = Input::get('animal_parent');
    $this->attributes['male_parent'] = intval($parent[0]);
}

public function setFemaleParentAttribute(AddAnimalRequest $request)
{
    $parent = Input::get('animal_parent);
    if (isset($parent[1])) {
       $this->attributes['female_parent'] = intval($parent[1]);
    } else {
        $this->attributes['female_parent'] = intval($parent[0]);
    }
    unset($request->animal_parent);
}
第二次尝试在控制器中使用
store()
方法

$animal = new Animal($request->all());
$parent = Input::get('animal_parent');

$animal['male_parent'] = intval($parent[0]);
if (isset($parent[1])) {
    $animal['female_parent'] = intval($parent[1]);
} else {
    $animal['female_parent'] = intval($parent[0]);
}

unset($request->animal_parent);
Auth::user()->animals()->save($animal);
return redirect('animals');

然后通过更改UI解决了问题。我觉得这个问题可以用下面的方法解决。希望这能帮助别人

 $input = $request->all();
    $parent = $input['animal_parent'];

    $input['male_parent'] = intval($parent[0]);
    if (isset($parent[1])) {
        $input['female_parent'] = intval($parent[1]);
    } else {
        $input['female_parent'] = intval($parent[0]);
    } 

    unset($input['animal_parent']);
    $animal = new Animal($input);
    $animal->save();`  

然后通过更改UI解决了问题。我觉得这个问题可以用下面的方法解决。希望这能帮助别人

 $input = $request->all();
    $parent = $input['animal_parent'];

    $input['male_parent'] = intval($parent[0]);
    if (isset($parent[1])) {
        $input['female_parent'] = intval($parent[1]);
    } else {
        $input['female_parent'] = intval($parent[0]);
    } 

    unset($input['animal_parent']);
    $animal = new Animal($input);
    $animal->save();`  

然后通过更改UI解决问题。然后通过更改UI解决问题。