我有三个桌子。
我想向组(组)添加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()!!}
也许我与表建立的关系不对?