添加具有多对多

时间:2017-10-15 13:13:59

标签: php laravel laravel-5 many-to-many laravel-5.4

我正在尝试使用图像名称和缩略图保存多个数据库记录(现在只显示文本输入)。每个图像都有一个类别/类别(由图像和类别之间的多选和数据透视表组成,具有多对多关系)。问题是:如何同步/附加这些类别?我不想使用foreach :: create,因为它会生成不必要的数据库请求。现在我有这样的事情:

我的刀片文件(部分形式)

<form action="/panel/images" method="POST">
{{ csrf_field() }}

    <div class="form-group">
        <label for="row[1][title]">Image title</label>
        <input type="text" name="row[1][title]" class="form-control" />
    </div>

    <div class="form-group">
        <label for="row[1][thumb]">Thumb</label>
        <input type="text" name="row[1][thumb]" class="form-control" />
    </div>

    <!-- date because insert methode don't create timestamps autimatically-->
    <input type="hidden" name="row[1][created_at]" value="{{ $date }}" />
    <input type="hidden" name="row[1][updated_at]" value="{{ $date }}" />

    <div class="form-group">
        <label for="multi[0][]">Categories</label>
        <select name="multi[0][]" multiple>
            @include('layouts.images_categories_select')
        </select>
    </div>



    <div class="form-group">
        <label for="row[2][title]">Image title</label>
        <input type="text" name="row[2][title]" class="form-control" />
    </div>

    <div class="form-group">
        <label for="row[2][thumb]">Thumb</label>
        <input type="text" name="row[2][thumb]" class="form-control" />
    </div>

    <div class="form-group">
        <label for="multi[1][]">Categories</label>
        <select name="multi[1][]" multiple>
            @include('layouts.images_categories_select')
        </select>
    </div>

    <input type="text" name="row[2][created_at]" value="{{ $date }}" />
    <input type="text" name="row[2][updated_at]" value="{{ $date }}" />


    <div class="form-group">
        <button type="submit" class="btn btn-primary">Submit</button>
    </div>      

 </form>

和控制器

public function store(Request $request)
{                
    $image = new Image;    
    $inputs = Input::get('row');
    $multiSelect = Input::get('multi');

    $image::insert($inputs);        

    $image->images_catetories()->sync($multiSelect);
    return redirect()->route('newImage')->with('status', 'images added');

}

编辑: 现在它抛出一个错误“SQLSTATE [42S22]:找不到列:'字段列表中的1054未知列'0'(SQL:插入image_images_category0image_idimages_category_id1)值(18,1,19))“

其中“image_images_category”是我的数据透视表,值18,1,1来自多选。

0 个答案:

没有答案