diff options
Diffstat (limited to 'demos/quickstart/protected/pages/Database')
| -rw-r--r-- | demos/quickstart/protected/pages/Database/id/ActiveRecord.page | 39 | 
1 files changed, 27 insertions, 12 deletions
diff --git a/demos/quickstart/protected/pages/Database/id/ActiveRecord.page b/demos/quickstart/protected/pages/Database/id/ActiveRecord.page index a171ed7d..954033d8 100644 --- a/demos/quickstart/protected/pages/Database/id/ActiveRecord.page +++ b/demos/quickstart/protected/pages/Database/id/ActiveRecord.page @@ -538,6 +538,7 @@ CREATE TABLE bar  <p class="block-content">Hubungan entitas antara tabel <tt>Teams</tt> dan <tt>Players</tt> adalah apa yang dikenal sebagai hubungan 1-M. Yaitu, satu Tim dapat berisi 0 atau lebih Pemain. Dalam batasan hubungan obyek, kita katakan bahwa obyek <tt>TeamRecord</tt> <b>memiliki banyak</b> obyek <tt>PlayerRecord</tt>.   (Perhatikan kebalikan dari arah hubungan antara tabel dan obyek.)  <p id="710019" class="block-content"> +  <h3 id="142017">Hubungan Has Many</h3>  <p id="710020" class="block-content">  Kita membuat model obyek <tt>Team</tt> sebagai kelas Rekaman Aktif berikut. @@ -554,7 +555,7 @@ class TeamRecord extends TActiveRecord      //mendefinisikan anggota $player yang memiliki hubungan banyak dengan PlayerRecord      public static $RELATIONS=array      ( -        'players' => array(self::HAS_MANY, 'PlayerRecord'), +        'players' => array(self::HAS_MANY, 'PlayerRecord', 'team_name'),      );      public static function finder($className=__CLASS__) @@ -634,19 +635,19 @@ Kode berikut mendefinisikan kelas <tt>PlayerRecord</tt> lengkap dengan 3 hubunga  class PlayerRecord extends TActiveRecord  {      const TABLE='Players'; -    public $player_id;	// deklarasi ini tidak diperlukan lagi sejak v3.1.2 -    public $age;	// deklarasi ini tidak diperlukan lagi sejak v3.1.2 -    public $team_name;	// deklarasi ini tidak diperlukan lagi sejak v3.1.2 +    public $player_id;	 +    public $age;	 +    public $team_name;	 -    public $team; -    public $skills=array(); -    public $profile; +    public $team;		// deklarasi ini tidak diperlukan lagi sejak v3.1.2 +    public $skills=array();	// deklarasi ini tidak diperlukan lagi sejak v3.1.2 +    public $profile;		// deklarasi ini tidak diperlukan lagi sejak v3.1.2      public static $RELATIONS=array      ( -        'team' => array(self::BELONGS_TO, 'TeamRecord'), +        'team' => array(self::BELONGS_TO, 'TeamRecord', 'team_name'),          'skills' => array(self::MANY_TO_MANY, 'SkillRecord', 'Player_Skills'), -        'profile' => array(self::HAS_ONE, 'ProfileRecord'), +        'profile' => array(self::HAS_ONE, 'ProfileRecord', 'player_id'),      );      public static function finder($className=__CLASS__) @@ -686,7 +687,7 @@ class ProfileRecord extends TActiveRecord      public $player_id;      public $salary; -    public $player;	// deklarasi ini tidak diperlukan lagi sejak v3.1.2 +    public $player;  // deklarasi ini tidak diperlukan lagi sejak v3.1.2      public static $RELATIONS=array      ( @@ -730,12 +731,26 @@ class Category extends TActiveRecord      public static $RELATIONS=array      ( -        'parent_category' => array(self::BELONGS_TO, 'Category'), -        'child_categories' => array(self::HAS_MANY, 'Category'), +        'parent_category' => array(self::BELONGS_TO, 'Category', 'parent_cat_id'), +        'child_categories' => array(self::HAS_MANY, 'Category', 'parent_cat_id'),      );  }  </com:TTextHighlighter> +<h3>Kriteria Query untuk Obyek Terkait</h3> +<p> +Dalam contoh di atas, kami memperlihatkan bahwa obyek Rekaman Aktif dapat mereferensi ke obyek terkaitnya sendiri dengan +mendeklarasikan anggota kelas statis $RELATIONS yang menetapkan sebuah daftar relasi. Setiap relasi +ditetapkan sebagai array yang terdiri dari tiga elemen: tipe relasi, nama kelas AR terkait, +dan kunci asing. Sebagai contoh, kami menggunakan <tt>array(self::HAS_MANY, 'PlayerRecord', 'team_name')</tt> +untuk menetapkan pemain dalam sebuah tim. Ada dua elemen opsional berikutnya yang dapat ditetapkan +dalam array ini: kondisi query (elemen keempat) dan parameters (elemen kelima). +Elemen tersebut dipakai untuk mengontrol bagaimana untuk melakukan query terhadap obyek terkait. Sebagai contoh, jika kita ingin memperoleh +para pemain yang diurut dengan usianya, kita dapat menetapkan <tt>array(self::HAS_MANY, 'PlayerRecord', 'team_name', 'ORDER BY age')</tt>. +Jika kita ingin mendapatkan para pemain yang usianya kurang dari  30, kita dapat menggunakan +<tt>array(self::HAS_MANY, 'PlayerRecord', 'team_name', 'age<:age', array(':age'=>30))</tt>. Secara umum, +dua elemen tambahan ini mirip seperti parameter yang dikirimkan ke metode <tt>find()</tt> dalam AR. +</p>  <h2 id="142013">Pemetaan Tabel Asosiasi</h2>  <p id="710032" class="block-content">  | 
