作為當下最流行的php框架之一,yii框架擁有高性能、高擴展性、高安全性等優勢,越來越多的開發者選擇使用yii框架開發各種類型的應用。本文就介紹如何使用yii框架創建一個租房網站。
一、環境配置
使用Yii框架創建租房網站,首先需要安裝必要的環境和工具:
- PHP環境:需要PHP5.4以上版本;
- 數據庫:本示例使用MySQL數據庫;
- 服務器:本示例使用Apache服務器;
- Yii框架:下載并解壓Yii框架到web服務器目錄。
二、創建數據庫
在MySQL中創建一個名為“house_rental”的數據庫,其中包含以下表:
- 房屋信息表(house_info):存儲房屋信息,包括房屋ID、地址、大小、價格等信息;
- 租戶信息表(tenant_info):存儲租戶信息,包括租戶ID、姓名、聯系方式等信息;
- 訂單信息表(order_info):存儲訂單的信息,包括訂單ID、房屋ID、租戶ID、租房時間、訂單狀態等信息。
三、創建Yii應用
在web服務器目錄下,使用Yii框架提供的命令行工具創建Yii應用:
- 打開命令行工具,進入web服務器目錄,執行以下命令:
php yii/framework/yii webapp house_rental
其中,“house_rental”為Yii應用的名稱。
- 創建后,在web服務器目錄下即可看到新建的Yii應用文件夾。
四、配置數據庫
在Yii應用文件夾中,打開protected/config/main.php文件。在該文件中,將以下代碼段替換為自己的數據庫配置信息:
'db'=>array( 'connectionString' => 'mysql:host=localhost;dbname=house_rental', 'emulatePrepare' => true, 'username' => 'username', 'password' => 'password', 'charset' => 'utf8', ),
其中,“localhost”為數據庫主機地址,“house_rental”為上一步中創建的數據庫名稱,“username”和“password”分別為數據庫登錄賬號和密碼。
五、創建數據模型
在Yii應用文件夾的models文件夾中,創建三個數據模型文件HouseInfo.php、TenantInfo.php和OrderInfo.php,分別對應上述三個表。
- HouseInfo.php文件:
<?php class HouseInfo extends CActiveRecord { //指定數據庫表名 public function tableName() { return 'house_info'; } //定義驗證規則 public function rules() { return array( array('address, size, price', 'required'), array('size', 'numerical', 'integerOnly'=>true), array('address', 'length', 'max'=>200), array('price', 'length', 'max'=>50), ); } //定義關聯關系,HouseInfo和OrderInfo是一對多的關系 public function relations() { return array( 'order_info'=>array(self::HAS_MANY, 'OrderInfo', 'house_id'), ); } }
- TenantInfo.php文件:
<?php class TenantInfo extends CActiveRecord { //指定數據庫表名 public function tableName() { return 'tenant_info'; } //定義驗證規則 public function rules() { return array( array('name, phone', 'required'), array('name', 'length', 'max'=>50), array('phone', 'length', 'max'=>20), ); } //定義關聯關系,TenantInfo和OrderInfo是一對多的關系 public function relations() { return array( 'order_info'=>array(self::HAS_MANY, 'OrderInfo', 'tenant_id'), ); } }
- OrderInfo.php文件:
<?php class OrderInfo extends CActiveRecord { //指定數據庫表名 public function tableName() { return 'order_info'; } //定義驗證規則 public function rules() { return array( array('house_id, tenant_id, order_date, status', 'required'), array('status', 'in', 'range'=>array('pending', 'reserved', 'paid', 'cancelled')), array('house_id, tenant_id', 'length', 'max'=>11), ); } //定義關聯關系,OrderInfo和HouseInfo是多對一的關系 public function relations() { return array( 'house_info'=>array(self::BELONGS_TO, 'HouseInfo', 'house_id'), ); } }
六、創建控制器和視圖
在Yii應用文件夾中,創建一個控制器文件HouseController.php和一個視圖文件house.php。
- HouseController.php文件:
<?php class HouseController extends Controller { public function actionIndex() { //查詢所有房屋信息 $houses = HouseInfo::model()->findAll(); $this->render('house', array('houses' => $houses)); } }
- house.php文件:
<?php $this->pageTitle=Yii::app()->name.' - 房屋列表'; $this->breadcrumbs=array( '房屋列表', ); ?> <h1>房屋列表</h1> <?php foreach($houses as $house): ?><div class="house"> <h2> <?php echo $house->address; ?></h2> <div class="info"> <p><strong>面積:</strong><?php echo $house->size; ?></p> <p><strong>價格:</strong><?php echo $house->price; ?></p> </div> <p><a href="#">查看更多</a></p> </div> <?php endforeach; ?>
七、啟動應用
在瀏覽器中輸入http://localhost/house_rental/index.php,在網頁中即可看到房屋列表。
至此,一個簡單的租房網站已經創建完成,你可以根據自己的需求進行功能擴展和美化。使用Yii框架開發應用,可以提高開發效率和代碼質量,并且易于維護和更新。希望本文能對你有所幫助。