从选择字段存储数组

问题描述:

我想在我的数据库中存储县的数组。这里是我的刀片:从选择字段存储数组

<select size="5" name="county[]" multiple class="form-control-2"> 
<option value="" selected="" disabled="">All Counties</option> 
@if (isset($counties)) 
    @foreach ($counties as $c) 
     <option value="{{ $c->name }}">{{ $c->name }}</option> 
    @endforeach 
@endif 

和我的控制器:

// Store the property Alert 
public function propertyAlert(PropertyAlertRequest $request) 
{ 
     $action = PropertySubscribe::create($request->all()); 
     $action = PropertySubscribe::create([ 
      $action->county = Input::get('county'), 
      ]); 
     $action->save(); 

    notify()->flash('Registered!', 'success', ['text' => 'You have now been registered.']); 
    return back(); 
} 

,我得到的错误是:

preg_replace(): Parameter mismatch, pattern is a string while replacement is an array 

谁能帮助我了解我是什么做错了?我将它作为数组发送,并且dd正在显示值。我是否需要对数组项目进行foreach?

+1

为什么与依赖注入混个门面?你有注入的$ request,所以你不需要使用'Input ::'。使用'$ request-> input('county')'。 – Devon

Input::get('county')是返回一个数组,因为你的select multiple

试试这个:

foreach(Input::get('county') as $county) 
{ 
    PropertySubscribe::create([ 
     $action->county = $county, 
    ]); 
} 
+0

谢谢,我仍然得到preg_replace错误! –

+0

@PaoloResteghini以及PropertySubscribe :: create期望的是什么?你在你的问题中传递了一个多维数组,这是一个单维数组。 – Devon

+0

我认为这是一个错字。 '$ action-> county => $ county,'但仍然没有意义,左侧应该是列的名称。 – user3158900