2017-08-28 15 views
2

私はこのLaravelに多対多の関係を付け加えるには?

製品表関係

Schema::create('colors', function (Blueprint $table) { 
      $table->increments('id'); 
      $table->string('name')->unique(); 
      $table->timestamps(); 
     }); 

     Schema::create('color_product', function (Blueprint $table) { 
      $table->integer('color_id')->unsigned()->index(); 
      $table->foreign('color_id')->references('id')->on('colors') 
         ->onDelete('restrict') 
         ->onUpdate('restrict'); 
      $table->integer('product_id')->unsigned()->index(); 
      $table->foreign('product_id')->references('id')->on('products') 
         ->onDelete('restrict') 
         ->onUpdate('restrict'); 
      $table->timestamps(); 
     }); 

Schema::create('products', function (Blueprint $table) { 
      $table->increments('id'); 
      $table->timestamps(); 
      $table->string('image'); 
      $table->string('stock'); 
      $table->string('title'); 
      $table->string('slug')->unique(); 
      $table->string('gender'); 
      $table->text('description'); 
      $table->integer('price'); 
      $table->integer('user_id')->unsigned(); 
      $table->foreign('user_id')->references('id')->on('users') 
         ->onDelete('restrict') 
         ->onUpdate('restrict'); 

      $table->dateTime('published_at'); 
     }); 

とカラーテーブルのように私のテーブルを作っbelongsToMany色と第2色belongsToMany製品

2つの表1製品を持っていますこのような1つの製品に色を追加しようとしています

それは働いていない
public function addproductdetailspost(Request $request, $product){ 

     $product = product::where('slug', $product)->firstorfail(); 
     $color = color::where('name', $request->color)->firstOrCreate(); 
     $color->name = $request->color; 
     $color->save(); 
     $product_id = $product->id; 
     $color_id = $color->id; 
     $product->colors()->attach($product_id); 
     return Redirect::back()->with('status', 'Post Success'); 
    } 

、私はこのエラー

Type error: Too few arguments to function Illuminate\Database\Eloquent\Builder::firstOrNew(), 0 passed in C:\xampp\htdocs\swimwear2\app\Http\Controllers\AdminController.php on line 109 and at least 1 expected 
+0

正確には機能しません。それに応じてあなたの質問を変更してください。そうでなければ、あなたを助けるのは難しいです。 –

+0

@JensHöpken私は不完全な質問を申し訳ありません –

答えて

1

それは間違った方向だが取得しています。

$color->products()->attach($product_id);