2016-04-05 19 views
0

私はメンバーとSkyMedRepモデルを持っている:Laravel外部キー関係 - フィールドリストの不明な列

class SkyMedRep extends Model 
{ 
    protected $fillable = [ 
     'id','rep_id', 
    ]; 

    public function members() 
    { 
     return $this->hasMany('App\Member'); 
    } 
} 

class Member extends User 
{ 
    public function sky_med_rep() 
    { 
     return $this->belongsTo('App\SkyMedRep'); 
    } 
} 

これは、メンバーの移行です:

public function up() 
    { 
     Schema::create('members', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->integer('sky_med_rep_id')->unsigned(); 
     $table->timestamps(); 
    }); 

    Schema::table('members', function($table) { 
     $table->foreign('sky_med_rep_id')->references('id')- >on('sky_med_reps')->nullable(true); 
    }); 
} 

メンバーモデルはSkyMedRep model.Afterを参照する外部キーが含まれています私はSkyMedRepモデルのオブジェクトをMemberモデルのオブジェクトに代入しようとしています:

$member->sky_med_rep = $sky_med_rep; 

ここで$ memberはメンバモデルのオブジェクト、$ sky_med_repはSkyMedRepモデルのオブジェクトです。

$ member-> save()を実行すると、「フィールドリストに「sky_med_rep」という不明な列があります」というエラーが表示されます。 sky_med_repが外部キー参照として扱うことができないようです。

$member = new Member(); 
    $member->sky_med_member_number = $request->input("sky_med_member")['member_number']; 
    $sky_med_rep = SkyMedRep::firstOrNew(['rep_id' => $request->input("sky_med_member")['rep_id']]); 
    $sky_med_rep->name = $request->input("sky_med_member")['name']; 
    $sky_med_rep->save(); 
    $member->sky_med_rep = $sky_med_rep; 
    $member->save(); 
+0

正確にエラーが発生したときは教えてください。あなたの質問も教えてください。 – Qazi

+0

$ member = new Member(); $ member-> sky_med_member_number = $ request-> input( "sky_med_member")['member_number']; $ sky_med_rep = SkyMedRep :: firstOrNew(['rep_id' => $ request-> input( "sky_med_member")['rep_id']]); $ sky_med_rep-> name = $ request-> input( "sky_med_member")['name']; $ sky_med_rep-> save(); $ member-> sky_med_rep = $ sky_med_rep; $ member-> save(); メンバーオブジェクトを保存中にエラーが発生します。 SkyMedRepオブジェクトで$ member-> sky_med_repを割り当てました。しかし、保存中に、不明なフィールドリストが表示されています –

+0

あなたの質問に追加情報を含めるように[編集]してください。 –

答えて

1

代わり$member->sky_med_rep = $sky_med_rep;のあなたは$member->sky_med_rep->associate($sky_med_rep);を書く必要があります。以下は、データを保存するための私のコードです。

コーディングスタイルガイドhttp://www.php-fig.org/psr/psr-2/もご覧ください。メソッド名はアンダースコアではなくcamelCaseでなければなりません。

+0

私はちょうどdjangoからlaravelに移行しました。私はここでは新人です。しかし、それは魅力(y)のように働いてくれてありがとう –

関連する問題