Laravel数据透视表插入数据

时间:2018-11-30 17:17:45

标签: laravel pivot-table has-and-belongs-to-many

我有三个桌子。

Table Diagramm

我想向组(组)添加oyuncu(玩家),所以我创建了一个方法(公共功能oyuncustore(Request $request, $grup_id))。 但是出现错误,无法向数据透视表添加行。

错误:

  BelongsToMany.php 866行中的

ErrorException:参数1传递给   照亮\ Database \ Eloquent \ Relations \ BelongsToMany :: formatSyncList()   必须是数组类型,给定的字符串,在   ......... / vendor / laravel / framework / src / Illuminate / Database / Eloquent / Relations / BelongsToMany.php   在831行并已定义

Grup.php

class Grup extends Model
{

    public function turnuva(){

        return $this->belongsTo('App\Turnuva');
    }

    public function oyuncular(){

        return $this->belongsToMany('App\Oyuncu');

   }
}

Turnuva.php

class Turnuva extends Model
{
    protected $table ='turnuvas';

    public function grups(){

        return $this->hasMany('App\Grup');
    }
}

Oyuncu.php

class Oyuncu extends Model
{
     protected $table ='oyuncular';
     //$fillable = ['grup_id', 'oyuncu_id'];

      public function grups(){

        return $this->belongstoMany('App\Grup');
    }

}

数据透视表:grup_oyuncu创建如下:

class CreateGrupOyuncuTable extends Migration
{
    public function up()
    {
        Schema::create('grup_oyuncu', function (Blueprint $table) {

            $table->increments('id');
            $table->integer('oyuncu_id')->unsigned();
            $table->foreign('oyuncu_id')->references('id')->on('oyuncular')->onDelete('CASCADE')->onUpdate('CASCADE');

            $table->integer('grup_id')->unsigned();
            $table->foreign('grup_id')->references('id')->on('grups')->onDelete('CASCADE')->onUpdate('CASCADE');
            $table->engine = 'InnoDB';
           });
    }


    public function down()
    {
        Schema::table('grup_oyuncu', function (Blueprint $table) {
       //$table->dropForeign(['user_id']);
        $table->dropForeign('grup_oyuncu_grup_id_foreign');
        $table->dropForeign('grup_oyuncu_oyuncu_id_foreign');
    });

        Schema::drop('grup_oyuncu');

    }
}

GrupController:

public function oyuncustore(Request $request, $grup_id)
    {

    $gr = new Grup;

    $tumoyuncular = Oyuncu::All();
    $grup= Grup::find($grup_id);

    $gr->oyuncular()->sync($request->oyuncu, false);

    $grpoyuncular = DB::table('grup_oyuncu')->select('oyuncu_id')->get();   
    Session::flash('success','Gruba oyuncu eklendi.');

    return view('gruplar.show')->withGrup($grup)->withTumoyuncular($tumoyuncular)->withGrpoyuncular($grpoyuncular);

}

表格:

{!! Form::open(['route'=>['gruplar.oyuncustore',$grup->id],'method'=>'POST'])!!}

            <h2>Yeni Oyuncu Ekle</h2>

            {{Form::label('oyuncu','Oyuncu Adı Soyadı:')}}

            <select class="form-control" name="oyuncu" id="">
            @foreach($tumoyuncular as $toyuncu)

            <option value="{{ $toyuncu->id}} ">{{$toyuncu->ad}} {{$toyuncu->soyad}}</option>
            @endforeach

        </select>


            {{Form::submit('Oyuncu Ekle', array('class'=>'btn btn-success btn-lg btn-block', 'style'=>'margin-top:20px;'))}}


            {!! Form::close()!!}

也许我与表建立的关系不对?

0 个答案:

没有答案