summaryrefslogtreecommitdiff
path: root/demos/quickstart/protected/pages/Database
diff options
context:
space:
mode:
Diffstat (limited to 'demos/quickstart/protected/pages/Database')
-rw-r--r--demos/quickstart/protected/pages/Database/id/ActiveRecord.page45
1 files changed, 43 insertions, 2 deletions
diff --git a/demos/quickstart/protected/pages/Database/id/ActiveRecord.page b/demos/quickstart/protected/pages/Database/id/ActiveRecord.page
index e73c133b..d4e473d8 100644
--- a/demos/quickstart/protected/pages/Database/id/ActiveRecord.page
+++ b/demos/quickstart/protected/pages/Database/id/ActiveRecord.page
@@ -891,13 +891,54 @@ sebuah array. Contohnya <tt>$player->skills[] = new SkillRecord()</tt>. Jika <tt
akan dikeluarkan.
</p>
-<h2 id="138054">Referensi</h2>
+<h2>Pemetaan Kolom</h2>
+<p>
+Sejak v3.1.1, Rekaman Aktif mulai mendukung pemetaan kolom. Pemetaan kolom membolehkan para
+pengembang untuk mengalamatkan kolom dalam Rekaman Aktif menggunakan konvensi penamaan lebih
+konsisten. Dalam keadaan tertentu, menggunakan pemetaan kolom, seseorang dapat mengakses kolom
+menggunakan apapun namanya yang disukainya, daripada nama terbatas yang didefinisikan dalam
+skema database.
+</p>
+<p>
+Untuk menggunakan pemetaan kolom, deklarasikan array statis bernama <tt>COLUMN_MAPPING</tt> dalam kelas Rekaman Aktif.
+Kunci dari array adalah nama kolom (disebut <i>nama kolom fisik</i>) yang didefinisikan dalam skema database,
+sementara nilai terkait dengan nama properti (disebut <i>nama kolom logika</i>) didefinisikan dalam
+kelas Rekaman Aktif. Nama properti dapat nama variabel anggota kelas public atau nama properti komponen
+yang didefinisikan via pengambil/penyetel. Jika nama kolom fisik terjadi sama seperti nama kolom logika,
+keduanya tidak perlu didaftarkan dalam <tt>COLUMN_MAPPING</tt>.
+</p>
+<com:TTextHighlighter Language="php" CssClass="source block-content">
+class UserRecord extends TActiveRecord
+{
+ const TABLE='users';
+ public static $COLUMN_MAPPING=array
+ (
+ 'user_id'=>'id',
+ 'email_address'=>'email',
+ 'first_name'=>'firstName',
+ 'last_name'=>'lastName',
+ );
+ public $id;
+ public $username; // nama kolom fisik dan logika sama
+ public $email;
+ public $firstName;
+ public $lastName;
+ //....
+}
+</com:TTextHighlighter>
+<p>
+Dengan pemetaan kolom di atas, kita menambahkan alamat <tt>first_name</tt> menggunakan <tt>$userRecord->firstName</tt>
+daripada <tt>$userRecord->first_name</tt>. Ini membantu pemisahan dari logika dan model.
+</p>
+
+<h2 id="138054">References</h2>
<ul id="u3" class="block-content">
<li>Fowler et. al. <i>Patterns of Enterprise Application Architecture</i>,
Addison Wesley, 2002.</li>
<li>B. Venners with B. Eckel. <i><a href="http://www.artima.com/intv/abstract3.html">Inappropriate Abstractions - A Conversation with Anders Hejlsberg, Part VI.</a></i>
Artima Developer, 2003.
</li>
+
</ul>
-<div class="last-modified">$Id: ActiveRecord.page 2179 2007-08-30 02:17:55Z wei $</div></com:TContent> \ No newline at end of file
+<div class="last-modified">$Id: ActiveRecord.page 2262 2007-09-28 18:26:03Z xue $</div></com:TContent> \ No newline at end of file