从选择字段存储数组
我想在我的数据库中存储县的数组。这里是我的刀片:从选择字段存储数组
<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?
Input::get('county')
是返回一个数组,因为你的select multiple
试试这个:
foreach(Input::get('county') as $county)
{
PropertySubscribe::create([
$action->county = $county,
]);
}
谢谢,我仍然得到preg_replace错误! –
@PaoloResteghini以及PropertySubscribe :: create期望的是什么?你在你的问题中传递了一个多维数组,这是一个单维数组。 – Devon
我认为这是一个错字。 '$ action-> county => $ county,'但仍然没有意义,左侧应该是列的名称。 – user3158900
为什么与依赖注入混个门面?你有注入的$ request,所以你不需要使用'Input ::'。使用'$ request-> input('county')'。 – Devon