У меня есть форма, где я буду синхронизировать свои атрибуты (это похоже на теги), но проблема в том, что я получаю ошибку при выборе или даже не выборе какого-либо атрибута.
Вот ошибка, которую я получаю:
SQLSTATE [HY000]: Общая ошибка: 1366 Неправильное целочисленное значение: '' для столбца 'attribute_id' в строке 1 (SQL: insert into
product_attributes
(attribute_id
,product_id
) значения (* parameters, 65))
Перед кодами мне нужно объяснить, что я пытаюсь сделать:
product_id
arribute_id
и attribute_value
в таблице product_attributes
. Вот мой клинок:
$(function() { $('a.pl').click(function(e) { e.preventDefault(); $('#phone').append('<div class="col-md-6"><select class="tagsselector mb-20 form-control" name="attribute[]"><option value="{{ $attribute->id }}">{{ $attribute->title }}</option></select></div><div class="col-md-6"><input name="attribute_value" class="form-control" type="text" placeholder="Value"></div>'); }); $('a.mi').click(function (e) { e.preventDefault(); if ($('#phone input').length > 1) { $('#phone').children().last().remove(); } }); });
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="RegSpLeft" id="phone" style="margin-top:30px;"> <div class="col-md-6"> <label for="attributes" hidden>Attributes</label> <select class="mb-20 form-control" name="attributes[]"> <option value="" selected>Select Attributes</option> @foreach($attributes as $attribute) <option value="{{ $attribute->id }}">{{ $attribute->title }}</option> @endforeach </select> </div> <div class="col-md-6"> <label for="attribute_value" hidden>attribute value</label> <input name="attribute_value" class="form-control" type="text" placeholder="Value"> </div> </div> <div class="RegSpRight"> <a href="#" class="pl">+</a> <a href="#" class="mi">-</a> </div>
Вот мой контроллер:
public function create() { $categories = Category::all(); $subcategories = Subcategory::all(); $attributes = Attribute::all(); if (is_null($attributes)) { $attributes = []; } $user = Auth::user(); return view('admin.products.create', compact('user', 'categories', 'subcategories', 'attributes')); }
Моя модель Product
:
public function attributes() { return $this->belongsToMany(Attribute::class, 'product_attributes', 'product_id', 'attribute_id'); }
Моя модель Attribute
:
public function products(){ return $this->belongsToMany(Product::class); }