隨意準備一個資料表
CREATETABLE`entry` ( `id`INT(11) NOTNULL AUTO_INCREMENT, `value`VARCHAR(12) NULLDEFAULTNULL, PRIMARYKEY (`id`))COLLATE='utf8_general_ci'ENGINE=InnoDBAUTO_INCREMENT=12;
配置Yii資料庫連結
首先要知道ActiveRecord是利用PDO_MySQ來實現的,所以要確認自己的這個外掛程式好用。 然後修改架構目錄/config/db.php 如下:
return [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=test', 'username' => 'root', 'password' => 'root', 'charset' => 'utf8',];
建立活動記錄對象(ActiveRecord)
namespaceapp\models;useyii\db\ActiveRecord;classEntryextendsActiveRecord {}
這個類裡面什麼都不寫,我們利用這個類告訴了Yii我們要從哪一張表中提取出資料。
簡單的控制器
namespaceapp\controllers;useyii\web\Controller;useapp\models\Entry;useyii\data\Pagination;classEntryControllerextendsController {publicfunctionactionGetAll() {$query = Entry::find(); $pagination = new Pagination([ 'defaultPageSize' => 5, 'totalCount' => $query->count(), ]); $entries = $query -> offset($pagination->offset) -> limit($pagination->limit) -> all(); return$this->render('showEntry', [ 'entries' => $entries, 'pagination' => $pagination, ]); } publicfunctionactionDelete() { Entry::deleteAll('value=\'***\''); returnself::actionGetAll(); }}
代碼中pagination是用來分頁的,如果沒有需求當然那可以不寫。其中的刪除函數寫的好像不怎麼正規。。。
建立視圖
useyii\helpers\Html;useyii\widgets\LinkPager;?>Entries :
foreach ($entriesas$entry) { ?>
- = Html::encode("$entry->id : $entry->value") ?>
} ?>
= LinkPager::widget([ 'pagination' => $pagination,]) ?>
結合LinkPager與Pagination,使用Yii完成了查詢與分頁。
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
').text(i)); }; $numbering.fadeIn(1700); }); });
以上就介紹了[我的PHP之旅] YII架構學習 03串連資料庫(使用ActiveRecord),包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。