【问题标题】:Laravel many relation insertLaravel 多关系插入
【发布时间】:2016-10-05 21:49:59
【问题描述】:

我需要将数组添加到数据库表中。在 HTML 中,我将 select 与多个选择值一起使用。

我的代码: 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");
    }

和控制器:

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”,但我不知道如何使用。

【问题讨论】:

    标签: php mysql arrays laravel


    【解决方案1】:

    为了简化,只需使用如下内容:

    $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);
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    • 2017-03-21
    • 2020-07-06
    • 2016-06-30
    • 1970-01-01
    相关资源
    最近更新 更多