dsfds4551 2018-06-28 10:59
浏览 76

通过attach()方法Laravel存储值时出现未知的列字段

i want to store multiple checkbox value by using attach() method.But the problem is:

Column not found: 1054 Unknown column 'category_id' in 'field list' (SQL: insert into size_products (category_id, product_id) values (small, 5))

My Table size_products Structure like this (size_id, product_id) .But dont know where came from category_id column

Here is My Models:

   //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];
    }
}

Here is my Controller :

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

Database :

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();
});
  • 写回答

1条回答 默认 最新

  • doumenshi1475 2018-06-28 12:28
    关注

    Fix these relation in your product model

    public function Sizes()
    {
        return $this->belongsToMany(Size::class, 'size_products');
    }
    
    public function Colors()
    {
        return $this->belongsToMany(Color::class, 'color_products');
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法