maav gan ane mo tanya nih ama master master sekalian,
begini ceritanya, ane punya 3 tabel sebagai berikut
stok|
id_stok
id_produk
jumlah
productbl|
id_product
id_merk
type
merk|
id_merk
nama_merk
masalahnya adalah ane belom begitu paham dengan penggunaan public relation yang belongs_to, has_many dll, dan ane bingung untuk menghubungkan tbl merk ke stok melalui product tbl, mohon pencerahannya gan
kalo ngomong domain model, kan ceritanya jadi begini:
[STOK]---->[PRODUK]----->[MERK]
jadi dibacanya STOK belongs_to PRODUK, dan PRODUK belongs_to MERK
artinya STOK nge-refer ke PRODUK (lewat STOK.id_produk),
lalu PRODUK ngerefer ke MERK (via PRODUK.id_merk)
menggunakan relasi belongs_to,
tipe produk bisa diakses dari stok secara langsung sebagai object
contoh
$stokJeans = STOCK::model()->findById(1); //pura2nya stock id 1 punya-nya jeans levis
echo $stockJeans->PRODUK->type; //celana jeans
echo $stockJeans->PRODUK->MERK->nama_merk; //Levis
kalo dari sisi yg direfer ceritanya bisa 2:
MERK mempunyai banyak PRODUK, artinya 1 MERK.id di tabel produknya bisa ada banyak record yg mengacu ke PRODUK.id_merk yg sama, contoh MERK Levis, PRODUKnya celana jeans, jacket dan t-shirt
maka dikatakan MERK has_many PRODUK
otomatis kalo direlasikan hasilnya adalah array, contoh
$levis = MERK::model()->find('nama_merk = "Levis"');
if (is_array($levis->PRODUKS)) {
foreach ($levis->PRODUKS as $produk)
echo $product->type;
}
PRODUK punya STOK dan hanya ada 1 STOK untuk 1 PRODUK, nyambung contoh sebelumnya, celana jeans stoknya 12, jacket tinggal 3, dan t-shirt masih 8.
maka relasi seperti ini dinamakan PRODUK has_one STOCK
sedikit tips, untuk penamaan relasi sebaiknya yg ada maknanya, misalnya kalo belongs_to atau has_one diberikan nama object yg bentuk tunggal gpp, tapi has_many lebih berarti kalo nama relasinya bentuk jamak. contoh: