Saya mungkin terlalu memperumit masalah, tapi inilah hubungan yang saya coba tulis di Eloquent (Laravel 5):
Saya memiliki daftar produk dan daftar harga. Setiap produk dapat memiliki banyak daftar harga. Ini mudah dilakukan, tapi ada satu hal lagi - untuk setiap produk ‹> penetapan daftar harga Saya dapat memiliki banyak harga berdasarkan kuantitas, jadi seperti:
productID: 1010
priceListId: 1
min quantity: 1 -> price 10.00
min quantity: 5 -> price 9.50
min quantity: 10 -> price 9.00
productID: 1010
priceListId: 2
min quantity: 1 -> price 15.00
min quantity: 40 -> price 14.00
min quantity: 90 -> price 12.00
Saya rasa saya tahu cara membuat tabel pivot khusus meskipun saya tidak tahu cara menggunakannya. Saya mengikuti tautan ini sekarang saya tidak yakin apakah kode saya benar dan cara menggunakannya.
Saat ini saya memiliki:
Model produk:
class Product extends Model {
public function pricelists()
{
return $this->belongsToMany('PriceList');
}
public function newPivot(Model $parent, array $attributes, $table, $exists)
{
if ($parent instanceof PriceList)
{
return new ProductPricePivot($parent, $attributes, $table, $exists);
}
return parent::newPivot($parent, $attributes, $table, $exists);
}
}
Model Daftar Harga:
class PriceList extends Model {
public function products()
{
return $this->belongsToMany('Product');
}
public function newPivot(Model $parent, array $attributes, $table, $exists)
{
if ($parent instanceof Product)
{
return new ProductPricePivot($parent, $attributes, $table, $exists);
}
return parent::newPivot($parent, $attributes, $table, $exists);
}
}
Poros:
class ProductPricePivot extends Pivot {
public function product()
{
return $this->belongsTo('Product');
}
public function pricelist()
{
return $this->belongsTo('PriceList');
}
public function prices()
{
return $this->hasMany('ProductPrice');
}
}
Sekarang ProductPrice memperluas Model lagi dan hanya model standar tanpa metode tambahan apa pun.
Apakah ini benar? Jika ya, ikuti contoh di atas, bagaimana cara menambahkan kuantitas/tingkat harga baru ke daftar harga 1 pada produk 1010?
Saat ini, saat menjalin hubungan, saya melakukan:
$productID = 1010;
$priceListID = 1;
$priceList = PriceList::find($priceListID);
$priceList->products()->attach($productID);
$productToPriceList = $priceList->products()->find($productID);
Dan saya tersesat di sini... Saya menemukan hubungan ini, tetapi bagaimana saya sekarang dapat melampirkan tingkat harga kuantitas ‹> berikutnya ke dalamnya?
Bisakah seseorang memberikan contoh bagaimana menggunakan hubungan atau tautan tersebut ke halaman di mana saya dapat menemukan lebih banyak tentangnya? Dan ya, saya memeriksa dokumentasi Laravel, dan ya, saya juga mencarinya di Google.
Terima kasih!