Yii学习笔记之二(使用gii生成一个简单的样例)

时间:2021-10-04 23:40:04

1. 数据库准备

(1) 首先我们建一数据库 yii2test

并建立一张表例如以下:

DROP TABLE IF EXISTS `posts`;
CREATE TABLE `posts` (
`post_id` int(10) NOT NULL AUTO_INCREMENT,
`post_title` varchar(100) NOT NULL DEFAULT '',
`post_desc` text,
`author_id` int(10) NOT NULL,
PRIMARY KEY (`post_id`),
KEY `userid` (`author_id`),
CONSTRAINT `userid` FOREIGN KEY (`author_id`) REFERENCES `users` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

(2) 我们将vhosts 指向 yii的解压文件夹的 basic 文件夹

配置 我们的数据库



找到文件:/basic/config/db.php

将对应的配置填入以下的配置中 保存

return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=yii2test',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
];

第一步 OK

2. 配置vhosts(此步可忽略)

我们将vhosts 文件配置到 basic 目录

配置的hosts 为 http://www.yiitest.com/

那么我们能够直接訪问

http://www.yiitest.com/web/index.php?r=gii

进入如图1 的界面

Yii学习笔记之二(使用gii生成一个简单的样例)

3. 生成模型代码

点击 Model Generator 下方的 startbutton

进入模型生成界面

如图2 填入相应的表名 和 模型名

Yii学习笔记之二(使用gii生成一个简单的样例)

这里我直接全用 posts 点 previewbutton

会生成模型文件 models\Posts.php



注意文件所在的文件夹权限 必须是 可写的 不然 会生成失败

4. 生成 crud 文件

点击相应的 crud generator 菜单

填入相应的信息:

model class: app\models\Posts

serch model class : app\models\PostsSearch

controller class : app\controllers\PostsController



如图3  点击 preview 然后 点击 generate button自己主动生成

Yii学习笔记之二(使用gii生成一个简单的样例)

此时会自己主动生成 全部的控制器和 相应的模型文件 以及相应的视图 文件 如图4

Yii学习笔记之二(使用gii生成一个简单的样例)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3VqaWFuZ3dlaTU2Nw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" height="398" width="562" alt="">

5. 訪问生成的控制器

http://www.yiitest.com/web/index.php?r=posts



如图6 create posts button创建 相应的记录表单

Yii学习笔记之二(使用gii生成一个简单的样例)

以下的输入框 则是用来搜索对应的记录的

输入相应的值 会自己主动过滤

自此,一个完整的自己主动生成的样例就是这样,样式什么的能够自己去设置。

Yii学习笔记之二(使用gii生成一个简单的样例)的更多相关文章

  1. tensorflow笔记(二)之构造一个简单的神经网络

    tensorflow笔记(二)之构造一个简单的神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7425200.html ...

  2. ZooKeeper学习笔记三:使用ZooKeeper实现一个简单的配置中心

    作者:Grey 原文地址:ZooKeeper学习笔记三:使用ZooKeeper实现一个简单的配置中心 前置知识 完成ZooKeeper集群搭建以及熟悉ZooKeeperAPI基本使用 需求 很多程序往 ...

  3. ZooKeeper学习笔记四:使用ZooKeeper实现一个简单的分布式锁

    作者:Grey 原文地址: ZooKeeper学习笔记四:使用ZooKeeper实现一个简单的分布式锁 前置知识 完成ZooKeeper集群搭建以及熟悉ZooKeeperAPI基本使用 需求 当多个进 ...

  4. 使用CEF(二)— 基于VS2019编写一个简单CEF样例

    使用CEF(二)- 基于VS2019编写一个简单CEF样例 在这一节中,本人将会在Windows下使用VS2019创建一个空白的C++Windows Desktop Application项目,逐步进 ...

  5. 人工智能中小样本问题相关的系列模型演变及学习笔记(二):生成对抗网络 GAN

    [说在前面]本人博客新手一枚,象牙塔的老白,职业场的小白.以下内容仅为个人见解,欢迎批评指正,不喜勿喷![握手][握手] [再啰嗦一下]本文衔接上一个随笔:人工智能中小样本问题相关的系列模型演变及学习 ...

  6. Jmeter学习笔记(二十三)——生成HTML性能报告

    有时候我们写性能报告的时候需要一些性能分布图,JMeter是可以生成HTML性能报告的.这篇博客,简单介绍下在利用jmeter进行性能测试时,是如何生成HTML的可视化测试报告的 一.准备工作 1:j ...

  7. Linux网络学习笔记(二):域名解析(DNS)——以 CoreDNS 为例

    个人笔记,观点不一定正确. 适合对 Kubernetes 有一定了解的同学. 前言 最近一直在学习 Kubernetes,但是手头没有个自有域名,要测试 ingress 就比较麻烦,每次都是手动改 h ...

  8. Python+Selenium学习笔记3 - 二维码生成

    用qrcode模块生成二维码 # coding = utf-8 import qrcode qr = qrcode.QRCode( version=1, error_correction=qrcode ...

  9. Python学习笔记(二)网络编程的简单示例

    Python中的网络编程比C语言中要简洁很多,毕竟封装了大量的细节. 所以这里不再介绍网络编程的基本知识.而且我认为,从Python学习网络编程不是一个明智的选择.   简单的TCP连接 服务器代码如 ...

随机推荐

  1. 快速入门系列--CLR--01基本概念

    在.NET平台用C#这么久,自然会发现其版本很多,相应的概念也会很多,常常都是萌萌哒.而在实际工作中经常会遇到需要配置dll版本号,公钥token等场景,因而对C#.NET.CLR.框架类型等基础概念 ...

  2. javascript表单验证

    表单HTML <form action="" method="post"> <fieldset class="login" ...

  3. js事件冒泡和事件捕获的区别

  4. JAVA程序的创建与编辑

    1.JAVA项目的创建与命令编辑 打开JAVA程序,选择工具栏上的创建按钮旁边的小三角,在下拉菜单中选择创建JAVA项目,在出现的对话窗口中输入项目名,在JRE使用执行环境中选择可用的资源包,如果安装 ...

  5. cloudera manager 及CDH卸载

    记录用户数据路径 删除用户数据 中列出的用户数据路径 /var/lib/flume-ng /var/lib/hadoop* /var/lib/hue /var/lib/navigator /var/l ...

  6. URAL 1146 Maximum Sum(最大子矩阵的和 DP)

    Maximum Sum 大意:给你一个n*n的矩阵,求最大的子矩阵的和是多少. 思路:最開始我想的是预处理矩阵,遍历子矩阵的端点,发现复杂度是O(n^4).就不知道该怎么办了.问了一下,是压缩矩阵,转 ...

  7. gcc编译器参数使用及解决

    gcc -c CStringAndPointer.c -o CStringAndPointer.o 执行时出现问题: ./CStringAndPointer.o bash: ./CStringAndP ...

  8. 读书笔记&lowbar;Effective&lowbar;C&plus;&plus;&lowbar;条款二十一:当必须返回对象时,别妄想返回其reference

    在栈空间的临时成员变量在函数生命期结束后无法传出 friend A& operator*(const A& a, const A& b) { A temp; temp.data ...

  9. log buffer space等待事件

    最近,我们有台服务器在delete操作期间发现一直在等待log buffer space,其他节点就没与这个问题.经查,向重做缓冲区上写入重做记录的进程,为了确保拥有重做缓冲区内必要的空间,需要获得r ...

  10. 判断&bsol;r&bsol;n结束标准

    ucPrev==0x0D&&ucCur==0x0A \r\n uint8_t ucPrev =0,ucCur = 0; uint32_t recvlen = 0; for (; uiL ...