php - Laravel 多关系插入

标签 php mysql arrays laravel

我需要将数组添加到数据库表中。在 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/

相关文章:

python - 在Python中计算数组幂集最快的方法是什么?

php - CodeIgniter 中的动态多语言站点。最好的方法?

php - 如何在没有 WP_Query 'title' 的情况下搜索帖子的 ,'content' &'meta_query' 's' ?

php - 根据数组结果PHP从第二个bd_table中选择

mysql - SQL选择字段使用另一个表中其他字段的一部分

php - 一次查询所有并保存到 session ,还是多次?

JavaScript:用表单字段填充数组

php - 如何在 SQL 中提交引号 (') 符号

php - 如何使用 JavaScript 每 5 秒加载一个 PHP 文件

arrays - VB.NET,传递数组作为参数的两种方式是否相同?