我需要将数组添加到数据库表中。在 HTML 中,我使用带有多个选择值的选择。
我的代码: HTML 就像:
<select name="sel_val[]" multiple>
<optgroup label="select_values">
@foreach($val as $v)
<option value="{{$v->id}}">{{$v->text}}</option>
@endforeach
</optgroup>
</select>
模型关系如下:
public function relationtest(){
return $this->hasMany('App\test',"testid","id");
}
和 Controller :
protected function create(Request $request){
$last = Home::create([
'somename'=>$request['somename'],
'text'=>$request['text']
]);
$last->relationtest()->createMany([
'selectvalue'=>$request->sel_val
]);
return Redirect::to('admin/products');
}
我的数组(print_r($request)):
[sel_val] => Array ( [0] => 1 [1] => 3 )
和数据库
HOME::
|id|sometext|text
|1 |asdgasdg|gsdg
|2 |asdgdsdg|gsg
TEST::
|id|selectvalue|testid
//testid == HOME::id
简而言之,我需要将$request->sel_val(array) 添加到数据库中。我想我应该使用“createMany”,但我不知道如何使用。
最佳答案
为了简化只使用这样的东西:
$values = $request->get('sel_val');
foreach ($values as $value)
{
$last->relationtest()->create(['selectvalue' => $value]);
}
如果你想将它优化为一个查询,当然,你可以使用 createMany:
$values = $request->get('sel_val');
$toCreate = [];
foreach ($values as $value)
{
$toCreate[] = ['selectvalue' => $value];
}
$last->relationtest()->createMany($toCreate);
关于php - Laravel 多关系插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37654861/