From d0bdd3144dfc972450d79ddaf6197a30b27eacc0 Mon Sep 17 00:00:00 2001 From: xue <> Date: Fri, 6 Apr 2007 12:52:54 +0000 Subject: Fixed some issues in day 2. --- .../protected/pages/Day2/CreateAR.page | 55 ++++++++++++++++++---- 1 file changed, 45 insertions(+), 10 deletions(-) (limited to 'demos/blog-tutorial/protected/pages/Day2/CreateAR.page') diff --git a/demos/blog-tutorial/protected/pages/Day2/CreateAR.page b/demos/blog-tutorial/protected/pages/Day2/CreateAR.page index bf2c05aa..d8b8b8ce 100644 --- a/demos/blog-tutorial/protected/pages/Day2/CreateAR.page +++ b/demos/blog-tutorial/protected/pages/Day2/CreateAR.page @@ -3,9 +3,19 @@

Creating Active Record Classes

-We need to create two Active Record classes, UserRecord and PostRecord, to represent data records in the users and posts tables, respectively. Active Record classes must extend from the base class ActiveRecord, and their properties must match exactly to the fields of the corresponding tables. To better organize our directories, we create a new directory protected/database to hold the class files. +We need to create two Active Record classes, UserRecord and PostRecord, to represent data records in the users and posts tables, respectively. Active Record classes must extend from the base class ActiveRecord, and their properties must match exactly to the fields of the corresponding tables.

+

+To better organize our directories, we create a new directory protected/database to hold the class files. We also modify our application configuration by inserting the following lines. It is equivalent to adding the directory protected/database to PHP include_path, which allows us to use the classes without explicitly including them. +

+ + + + + + +

Instead of writing the classes manually, we will use the PRADO command line tool again to generate the classes for us.

@@ -54,19 +64,18 @@ We should see the following directory structure with two new files under pro

-If we check the UserRecord class file, we should see the following content. As we see, for each field in the users table, the class has a corresponding data member. The constant TABLE specifies the table name for the UserRecord. The static method finder() allows us to perform query and retrieve users data in terms of UserRecord objects, as we will see in later sections. +If we check the PostRecord class file, we should see the following content.

-class UserRecord extends TActiveRecord +class PostRecord extends TActiveRecord { - const TABLE='users'; - public $username; - public $email; - public $password; - public $role; - public $first_name; - public $last_name; + const TABLE='posts'; + public $post_id; + public $author; + public $create_time; + public $title; + public $content; public static function finder($className=__CLASS__) { @@ -75,4 +84,30 @@ class UserRecord extends TActiveRecord } +

+As we see, for each field in the posts table, the class has a corresponding data member. The constant TABLE specifies the table name for the PostRecord. The static method finder() allows us to perform query and retrieve post data in terms of PostRecord objects. +

+ +

+We can use the command line tool to do some testing with our newly created Active Record classes. Still in the interactive mode of the command line tool, we enter a PHP statement and should see the following. Interested readers may try some other PHP statements, such as UserRecord::finder()->findAll(). +

+ + +>> PostRecord::finder()->findAll() +array +( + [0] => PostRecord#1 + ( + [post_id] => '1' + [author] => 'admin' + [create_time] => '1175708482' + [title] => 'first post' + [content] => 'this is my first post' + [TActiveRecord:_readOnly] => false + [TActiveRecord:_connection] => null + [TComponent:_e] => array() + ) +) + + \ No newline at end of file -- cgit v1.2.3