当前位置:Gxlcms > PHP教程 > [我的PHP之旅]YII框架学习03连接数据库(使用ActiveRecord)

[我的PHP之旅]YII框架学习03连接数据库(使用ActiveRecord)

时间:2021-07-01 10:21:17 帮助过:21人阅读

随意准备一个数据表

CREATETABLE`entry` (
    `id`INT(11) NOTNULL AUTO_INCREMENT,
    `value`VARCHAR(12) NULLDEFAULTNULL,
    PRIMARYKEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_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教程有兴趣的朋友有所帮助。

  • 人气教程排行