2016-04-05 30 views
0

alan listede Bilinmeyen sütun:laravel yabancı anahtar ilişkisi - Ben Üyesi ve SkyMedRep modelleri var

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

Bu Üyesi için göç:

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

Üye modeli SkyMedRep model.After başvuran yabancı anahtarı içeren Bu ilişkiyi tanımlarken, SkyMedRep modelinin nesnesini Üye modelinin nesnesine atamaya çalışıyorum:

$member->sky_med_rep = $sky_med_rep; 

Burada, üye üye nesnesi $ üyesidir ve $ sky_med_rep, SkyMedRep modelinin nesnesidir.

$ member-> save() işlevini denediğimde, "Alan listesinde" Bilinmeyen sütun "sky_med_rep 'hatası alıyorum". Sky_med_rep'in yabancı anahtar referansı olarak ele alınamaması gibi görünüyor.

$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

Hata mesajını ne zaman aldığınızı söyler misiniz? ayrıca bana sorgunu söyle – Qazi

+0

$ üye = yeni Üye(); $ 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(); $ üye-> sky_med_rep = $ sky_med_rep; $ üye-> save(); Üye nesnesi kaydedilirken hata alıyorum. SkyMedRep nesnesi tarafından $ member-> sky_med_rep atadım. Ama kaydetme sırasında, hata bilinmeyen alan listesini alıyorum –

+0

Lütfen ek bilgileri eklemek için sorunuz [değiştir]. –

cevap

1

yerine $member->sky_med_rep = $sky_med_rep; Seni $member->sky_med_rep->associate($sky_med_rep); yazmalısınız: Aşağıda verileri kaydetmek benim koddur.

Ayrıca http://www.php-fig.org/psr/psr-2/ kodlama stili kılavuzuna da bakabilirsiniz. Yöntem adları, alt çizgi değil, deveCase olmalıdır.

+0

Harika. Ben sadece django'dan laravele göç ettim. Ben burada yeniyim. Ama teşekkürler, bir çekicilik (y) gibi çalıştı –

İlgili konular