shark03
Merhaba Arkdaşlar,
laravelde yeniyim. öğrenebilmek için ufak bir proje yapıyorum.
1 e 1 ilişki kurarken istediğim sonucu alamadım. şöyle ki
Film ve Kategori Tablosu var. her filmin bir kategorisi olacak
ben film modeli üzerinden filmin kategorisinin adını almak istiyorum ve aşağıdaki gibi modeller oluşturdum.
Film Migration:
Schema::create('films', function($table){
$table->increments('id');
$table->integer('cat_id')->unsigned();
$table->string('title', 255);
$table->text('content');
// $table->boolean('published');
$table->enum('published', array('yayinda', 'yayinda_degil'));
$table->string('image_url',255);
$table->foreign('cat_id')->references('id')->on('categories')->onDelete('cascade');
$table->timestamps();
});
Film Modeli :
class Film extends Model
{
protected $table="films";
public function comment()
{
return $this->hasMany('App\Models\Comment','film_id');
}
public function category()
{
return $this->belongsTo('App\Models\Category','id');
//kendimce şöyle bir sıkıntıdan olacağını düşünüyorum ; BelongsTo metodunda 2.parametre olarak foreign_key belirtiliyor. ancak ben Category modelinde id'yi primary_key olarak belirledim. bu kullanım hatalı mı acaba?
}
}
Kategori Migration :
Schema::create('categories', function($table){
$table->increments('id');
$table->string('title',80);
$table->string('description',255);
$table->timestamps();
});
Kategori Modeli:
protected $table="categories";
public function film()
{
return $this->hasMany('App\Models\Film','cat_id');
}
Şimdiden Teşekkür ederim...
Hayırlı akşamlar.
shark03
ilişkileri düzenlerken hata yapmışım.
Film modeli altındaki category metoduna 'cat_id' parametresini ekledim ve sorunum düzeldi
public function category()
{
return $this->hasOne('App\Models\Category','id','cat_id');
}