Я хочу сохранить несколько значений флажков, используя
attach(
) метод. Но проблема в следующем:
Столбец не найден: 1054 Неизвестный столбец 'category_id' в 'списке полей'
(SQL: вставить в size_products
(category_id
, product_id
) значения
(маленький, 5))
Моя таблица size_products
Структура, подобная этой (size_id
, product_id
). Но не знаю, откуда взялась category_id
колонка
Вот мои модели:
//Size Model
class Size extends Model
{
public function Products()
{
return $this->belongsToMany(Product::class, 'size_products','product_id','size_id');
}
}
/////// Product Model
class Product extends Model
{
public function Categories()
{
return $this->belongsToMany(Category::class, 'category_products');
}
public function Colors()
{
return $this->belongsToMany(Category::class, 'color_products');
}
public function Sizes()
{
return $this->belongsToMany(Category::class, 'size_products');
}
public function FirstImage(){
$data = explode(',',$this->images);
return $data[0];
}
}
Вот мой контроллер:
$product = new Product();
$product->name= $request->input('name');
$product->model= $request->input('model');
$product->save();
$product->Categories()->attach($request->input('categories_id'));
foreach ($request->sizes as $size){
$product->Sizes()->attach($size);
}
foreach ($request->colors as $color){
$product->Colors()->attach($color);
}
База данных:
Schema::create('size_products', function (Blueprint $table) {
$table->increments('id');
$table->integer('product_id')->unsigned();
$table->foreign('product_id')->references('id')->on('products')->onUpdate('cascade')->onDelete('cascade');
$table->integer('size_id')->unsigned();
$table->foreign('size_id')->references('id')->on('sizes')->onUpdate('cascade')->onDelete('cascade');
$table->timestamps();
});