Pengertian hasOne, hasMany dan belongsTo pada laravel?

Permisi, Kakak, mohon penjelasan tentang judul diatas, Kak? Saya masih kurang pahm tentang fungsi diatas tersebut. :)

avatar gugunguntoro
@gugunguntoro

250 Kontribusi 10 Poin

Diperbarui 1 tahun yang lalu

7 Jawaban:

Saya juga gak tahu, yang tahu jawab dong

avatar patar
@patar

5 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

ngikut dong tanya gnian kadang aja dipakai ya

avatar mrvolk
@mrvolk

17 Kontribusi 7 Poin

Dipost 7 tahun yang lalu

Sebenarnya sudah sangat jelas dijelaskan melalui dokumentasinya. note : *primary, **foreign key

1. One to One Jika, table User struktur {user_id*, user_name} table Phone struktur {phone_id*, user_id**} Nah, bentuk Eloquent modelnya :

 class User extends Model{
	...
	//nyambungin ke model Phone
	function phone(){
		return $this->hasOne('App\Phone');
	}
	...
}

class Phone extends Model{
	...
	//nyambungin balik ke user
	function user(){
		return $this->belongsTo('App\User');
	}
	...
}

Artinya 1 User punya 1 Phone. Nah, pemakaian hasOne penjabaran lengkapnya :

 $this->hasOne('App\Phone','foreign_key','local_id');

Kalo saya tulis hasOne('App\Phone') aja artinya nama foreign key penyambungannya adalah : namaModelYangAdaHasOne_id karena saya naro hasOnenya itu di model User berarti foreignya key penyambungnya == user_id.

Kalo foreig_key i table phone bukan user_id, misalkan phone_user_id bisa tambahin : $this->hasOne('App\One','phone_user_id');

2. One to Many Jika, table User struktur {user_id*, user_name} table Comment struktur {comment_id*, comment_user_id**} Disini saya pakai foreign key yang namanya beda dg nama parent.

Artinya 1 User punya banyak Comment. Pemakaian hasMany penjabarannya kayak begini :

 $this->hasMany('App\Comment','foreign_key','local_id');

Berarti :

 class User extends Model{
	...
	function comment(){
		return $this->hasMany('App\Comment','comment_user_id');
	}
	...
}

class Comment extends Model{
	...
	function comment(){
		return $this->belongsTo('App\User','comment_user_id');
	}
	...
}

Selebihnya gak jauh beda sama hasOne.

Maksud : hasOne / hasMany -> digunain di table parent (foreign key user_id) belongsTo -> digunain ditable penyambung (yang punya foreign key)

Kalo ada yang salah2 mohon di koreksi para suhu >,<

avatar beckbella
@beckbella

68 Kontribusi 38 Poin

Dipost 7 tahun yang lalu

Terimakasih banyak atas penjelasannya, Kak @beckbella :)

kalo foreign_key itu fungsinya buat apa, Kak?

avatar gugunguntoro
@gugunguntoro

250 Kontribusi 10 Poin

Dipost 7 tahun yang lalu

Foreign key itu istilah dari kunci tamu. Semacam field yang nyambungin antara dua table atau lebih. Kalo mau lebih jelasnya klik aja link ini https://www.w3schools.com/sql/sql_foreignkey.asp

avatar beckbella
@beckbella

68 Kontribusi 38 Poin

Dipost 7 tahun yang lalu

<div>menurut saya has to many itu bedanya harus bayak dan satu ke banyak one to manya cmiwwww</div>

avatar shalaahuddiendaffa
@shalaahuddiendaffa

1 Kontribusi 0 Poin

Dipost 3 tahun yang lalu

terimakasih sebelumnya temen temen sangad membantu, izin menjabarkan singkatnya :

tabel penampung relasi contoh id memiliki HasMany dan tabel penerima relasi memilik user_id dengan BelongsTo artinya user memiliki komen misal, pertanyaan saya satuan hasOne apakah dengan belongsTo penerima relasi hasOne dengan user_id dan penampung relasi belongsTo yaitu id apakah begitu , dan mana a? hhe gatau waku

avatar dimasmaulana_google_6918
@dimasmaulana_google_6918

1 Kontribusi 0 Poin

Dipost 1 tahun yang lalu

Login untuk ikut Jawaban