Changeset 2341
- Timestamp:
- 12/09/2007 12:21:38 PM (13 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/demos/quickstart/protected/pages/Database/id/ActiveRecord.page
r2328 r2341 539 539 (Perhatikan kebalikan dari arah hubungan antara tabel dan obyek.) 540 540 <p id="710019" class="block-content"> 541 541 542 <h3 id="142017">Hubungan Has Many</h3> 542 543 <p id="710020" class="block-content"> … … 555 556 public static $RELATIONS=array 556 557 ( 557 'players' => array(self::HAS_MANY, 'PlayerRecord' ),558 'players' => array(self::HAS_MANY, 'PlayerRecord', 'team_name'), 558 559 ); 559 560 … … 635 636 { 636 637 const TABLE='Players'; 637 public $player_id; // deklarasi ini tidak diperlukan lagi sejak v3.1.2638 public $age; // deklarasi ini tidak diperlukan lagi sejak v3.1.2639 public $team_name; // deklarasi ini tidak diperlukan lagi sejak v3.1.2640 641 public $team; 642 public $skills=array(); 643 public $profile; 638 public $player_id; 639 public $age; 640 public $team_name; 641 642 public $team; // deklarasi ini tidak diperlukan lagi sejak v3.1.2 643 public $skills=array(); // deklarasi ini tidak diperlukan lagi sejak v3.1.2 644 public $profile; // deklarasi ini tidak diperlukan lagi sejak v3.1.2 644 645 645 646 public static $RELATIONS=array 646 647 ( 647 'team' => array(self::BELONGS_TO, 'TeamRecord' ),648 'team' => array(self::BELONGS_TO, 'TeamRecord', 'team_name'), 648 649 'skills' => array(self::MANY_TO_MANY, 'SkillRecord', 'Player_Skills'), 649 'profile' => array(self::HAS_ONE, 'ProfileRecord' ),650 'profile' => array(self::HAS_ONE, 'ProfileRecord', 'player_id'), 650 651 ); 651 652 … … 687 688 public $salary; 688 689 689 public $player; // deklarasi ini tidak diperlukan lagi sejak v3.1.2690 public $player; // deklarasi ini tidak diperlukan lagi sejak v3.1.2 690 691 691 692 public static $RELATIONS=array … … 731 732 public static $RELATIONS=array 732 733 ( 733 'parent_category' => array(self::BELONGS_TO, 'Category' ),734 'child_categories' => array(self::HAS_MANY, 'Category' ),734 'parent_category' => array(self::BELONGS_TO, 'Category', 'parent_cat_id'), 735 'child_categories' => array(self::HAS_MANY, 'Category', 'parent_cat_id'), 735 736 ); 736 737 } 737 738 </com:TTextHighlighter> 738 739 740 <h3>Kriteria Query untuk Obyek Terkait</h3> 741 <p> 742 Dalam contoh di atas, kami memperlihatkan bahwa obyek Rekaman Aktif dapat mereferensi ke obyek terkaitnya sendiri dengan 743 mendeklarasikan anggota kelas statis $RELATIONS yang menetapkan sebuah daftar relasi. Setiap relasi 744 ditetapkan sebagai array yang terdiri dari tiga elemen: tipe relasi, nama kelas AR terkait, 745 dan kunci asing. Sebagai contoh, kami menggunakan <tt>array(self::HAS_MANY, 'PlayerRecord', 'team_name')</tt> 746 untuk menetapkan pemain dalam sebuah tim. Ada dua elemen opsional berikutnya yang dapat ditetapkan 747 dalam array ini: kondisi query (elemen keempat) dan parameters (elemen kelima). 748 Elemen tersebut dipakai untuk mengontrol bagaimana untuk melakukan query terhadap obyek terkait. Sebagai contoh, jika kita ingin memperoleh 749 para pemain yang diurut dengan usianya, kita dapat menetapkan <tt>array(self::HAS_MANY, 'PlayerRecord', 'team_name', 'ORDER BY age')</tt>. 750 Jika kita ingin mendapatkan para pemain yang usianya kurang dari 30, kita dapat menggunakan 751 <tt>array(self::HAS_MANY, 'PlayerRecord', 'team_name', 'age<:age', array(':age'=>30))</tt>. Secara umum, 752 dua elemen tambahan ini mirip seperti parameter yang dikirimkan ke metode <tt>find()</tt> dalam AR. 753 </p> 739 754 740 755 <h2 id="142013">Pemetaan Tabel Asosiasi</h2>
