作為當(dāng)下最流行的PHP框架之一,Yii框架擁有高性能、高擴展性、高安全性等優(yōu)勢,越來越多的開發(fā)者選擇使用Yii框架開發(fā)各種類型的應(yīng)用。本文就介紹如何使用Yii框架創(chuàng)建一個租房網(wǎng)站。
一、環(huán)境配置
使用Yii框架創(chuàng)建租房網(wǎng)站,首先需要安裝必要的環(huán)境和工具:
- PHP環(huán)境:需要PHP5.4以上版本;數(shù)據(jù)庫:本示例使用MySQL數(shù)據(jù)庫;服務(wù)器:本示例使用Apache服務(wù)器;Yii框架:下載并解壓Yii框架到web服務(wù)器目錄。
二、創(chuàng)建數(shù)據(jù)庫
在MySQL中創(chuàng)建一個名為“house_rental”的數(shù)據(jù)庫,其中包含以下表:
- 房屋信息表(house_info):存儲房屋信息,包括房屋ID、地址、大小、價格等信息;租戶信息表(tenant_info):存儲租戶信息,包括租戶ID、姓名、聯(lián)系方式等信息;訂單信息表(order_info):存儲訂單的信息,包括訂單ID、房屋ID、租戶ID、租房時間、訂單狀態(tài)等信息。
三、創(chuàng)建Yii應(yīng)用
在web服務(wù)器目錄下,使用Yii框架提供的命令行工具創(chuàng)建Yii應(yīng)用:
- 打開命令行工具,進入web服務(wù)器目錄,執(zhí)行以下命令:
php yii/framework/yii webapp house_rental
登錄后復(fù)制
其中,“house_rental”為Yii應(yīng)用的名稱。
- 創(chuàng)建后,在web服務(wù)器目錄下即可看到新建的Yii應(yīng)用文件夾。
四、配置數(shù)據(jù)庫
在Yii應(yīng)用文件夾中,打開protected/config/main.php文件。在該文件中,將以下代碼段替換為自己的數(shù)據(jù)庫配置信息:
'db'=>array( 'connectionString' => 'mysql:host=localhost;dbname=house_rental', 'emulatePrepare' => true, 'username' => 'username', 'password' => 'password', 'charset' => 'utf8', ),
登錄后復(fù)制
其中,“l(fā)ocalhost”為數(shù)據(jù)庫主機地址,“house_rental”為上一步中創(chuàng)建的數(shù)據(jù)庫名稱,“username”和“password”分別為數(shù)據(jù)庫登錄賬號和密碼。
五、創(chuàng)建數(shù)據(jù)模型
在Yii應(yīng)用文件夾的models文件夾中,創(chuàng)建三個數(shù)據(jù)模型文件HouseInfo.php、TenantInfo.php和OrderInfo.php,分別對應(yīng)上述三個表。
- HouseInfo.php文件:
<?php class HouseInfo extends CActiveRecord { //指定數(shù)據(jù)庫表名 public function tableName() { return 'house_info'; } //定義驗證規(guī)則 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), ); } //定義關(guān)聯(lián)關(guān)系,HouseInfo和OrderInfo是一對多的關(guān)系 public function relations() { return array( 'order_info'=>array(self::HAS_MANY, 'OrderInfo', 'house_id'), ); } }
登錄后復(fù)制
- TenantInfo.php文件:
<?php class TenantInfo extends CActiveRecord { //指定數(shù)據(jù)庫表名 public function tableName() { return 'tenant_info'; } //定義驗證規(guī)則 public function rules() { return array( array('name, phone', 'required'), array('name', 'length', 'max'=>50), array('phone', 'length', 'max'=>20), ); } //定義關(guān)聯(lián)關(guān)系,TenantInfo和OrderInfo是一對多的關(guān)系 public function relations() { return array( 'order_info'=>array(self::HAS_MANY, 'OrderInfo', 'tenant_id'), ); } }
登錄后復(fù)制
- OrderInfo.php文件:
<?php class OrderInfo extends CActiveRecord { //指定數(shù)據(jù)庫表名 public function tableName() { return 'order_info'; } //定義驗證規(guī)則 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), ); } //定義關(guān)聯(lián)關(guān)系,OrderInfo和HouseInfo是多對一的關(guān)系 public function relations() { return array( 'house_info'=>array(self::BELONGS_TO, 'HouseInfo', 'house_id'), ); } }
登錄后復(fù)制
六、創(chuàng)建控制器和視圖
在Yii應(yīng)用文件夾中,創(chuàng)建一個控制器文件HouseController.php和一個視圖文件house.php。
- HouseController.php文件:
<?php class HouseController extends Controller { public function actionIndex() { //查詢所有房屋信息 $houses = HouseInfo::model()->findAll(); $this->render('house', array('houses' => $houses)); } }
登錄后復(fù)制
- 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; ?>
登錄后復(fù)制
七、啟動應(yīng)用
在瀏覽器中輸入http://localhost/house_rental/index.php,在網(wǎng)頁中即可看到房屋列表。
至此,一個簡單的租房網(wǎng)站已經(jīng)創(chuàng)建完成,你可以根據(jù)自己的需求進行功能擴展和美化。使用Yii框架開發(fā)應(yīng)用,可以提高開發(fā)效率和代碼質(zhì)量,并且易于維護和更新。希望本文能對你有所幫助。
以上就是使用Yii框架創(chuàng)建租房網(wǎng)站的詳細內(nèi)容,更多請關(guān)注www.xfxf.net其它相關(guān)文章!