[我的PHP之旅] YII架構學習 03串連資料庫(使用ActiveRecord)

來源:互聯網
上載者:User
隨意準備一個資料表

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教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.