AI智能
改变未来

初学者的ThinkPHP笔记


一、URL解析模式

1、 ThinkPHP 框架非常多的操作都是通过 URL 来实现的,{如:http:/域名/index.php/模块/控制器/操作/参数/值…}其中index.php是入口文件,在 public 目录下。

2、所有的模块都在 application 目录下,比如在 application 目录下有一个 index 目录,这就是一个模块,我们可以根据自己的需求创建一个属于自己的模块,比如创建一个admin目录,这个admin目录我们可以当成是一给后台模块,在这个admin的目录下一般还有Controller目录、Model目录、View目录,这三个目录就是我们常说的MVC架构。

3、Controller目录下存放的文件,就是我们所说的控制器文件,比如我们在application \\Controller目录下创建一个index.php的文件,这个控制器的类名也必须是 class Index,否则错误;在这个类下我创建了一个login的方法, 我们要访问这个控制器的正确URL是{http:/域名/index.php/admin/index/login},具体访问流程:通过域名找到public 目录下的index.php是入口文件,在这个入口文件下定义了应用目录{define(‘APP_PATH’, DIR . ‘/…/application/’);},从而找到application目录,所有我们的访问{http:/域名/index.php/admin/index/login}等价于{http:/域名/application/admin/index/login}

二、控制器的跳转和重定向

1、在application \\Controller目录下创建的控制器类,需要继承Controller这个类,继承这个类的用处就是为了使用Controller这个类里面的方法,在TinkPHP框架里已经了Controller这个类了,我们只要用就可以了,当然如果你不需要用到Controller这个类里面的方法,则不需要继承。

2、 Controller 类提供了两个跳转的方法,success(提示,指定跳转的路径)和 error(提示);

public function index() {if ($this->flag) {$this->success(\'成功!\', \'./application/view/login.html\');} else {$this->error(\'失败!\');}}

3、 如果需要自定义跳转页面,可以使用如下的模版变量:

三、数据库与模型

1、使用数据库的第一步,就是连接你的数据库;
连接数据库的方法:在application目录下有个database.php 文件,这个文件就是负责数据库的连接文件
database.php文件大致内容:

// 数据库类型\'type\' => \'mysql\',// 服务器地址\'hostname\' => \'127.0.0.1\',// 数据库名\'database\' => \'grade\',// 用户名\'username\' => \'root\',// 密码\'password\' => \'123456\',// 端口\'hostport\' => \'3306\',// 编码\'charset\' => \'utf8\',// 数据库表前缀\'prefix\' => \'tp_\',

我们只需要填写好自己的数据库名、数据库用户名、数据库密码,填写好就可以了
配置完数据库,我们使用如下代码,在控制器端输出 mysql 里的数据;

public function getNoModelData() {//$data = Db::table(\'tp_user\')->select();$data = Db::name(\'user\')->select(); return json($data);}

tp_user是数据库里的表名,用table()方法就必需要完整的表面,而name()方法需要除去前缀,就是“_”前面的字段

2、MVC中的M(model )模型,也就是application/model 目录,这个目录主要是用来处理数据库的,简单来说就是用来操控数据库的,举例子说:
我们在application/model 目录下创建了一个User类

namespace app\\model;use think\\Model;class User extends Model {}

那么我们就需要在application/Controller 目录下创建一个与其对应的控制器

public function getModelData() {//User就是model模型中的User类 等价于 java 中的  date=new User;$data = User::select();return json($data);}

四、数据库的查询

1、基本查询

Db::table(\'tp_user\')->find();

find()方法只查询一条数据

return  Db::getLastSql()

Db::getLastSql()方法,返回SQL 查询的原生语句

Db::table(\'tp_user\')->where(\'id\', 27)->find()

where()方法,指定查询数据

Db::table(\'tp_user\')->select();

select()方法,获取多列数据

Db::name(\'user\')->where(\'id\', 27)->value(\'username\');

value()方法,可以查询指定字段的值(单个),没有数据返回 null

Db::name(\'user\')->column(\'username\');

colunm()方法,可以查询指定列的值(多个),没有数据返回空数组;

Db::name(\'user\')->column(\'username\', \'id\');

可以指定 id 作为列值的索引;

五、链式查询

1、因为 Db::name(‘user’)是我们多次使用的,每次对要写比较麻烦,所有可以把它封装成一个变量,

$user = Db::name(\'user\');$data = $user->select();
$user->removeOption(\'where\')->select();

removeOption()方法,可以清理掉上一次查询保留的值;

六、数据库的增、删、改

1、增加数据

$data = [\'username\' => \'辉夜\',\'password\' => \'123\',\'gender\' => \'女\',\'email\' => \'huiye@163.com\',\'price\' => 90,\'details\' => \'123\',\'create_time\' => date(\'Y-m-d H:i:s\')];Db::name(\'user\')->insert($data);Db::name(\'user\')->insertGetId($data);

insert()方法可以向数据表添加一条数据,如果新增成功,insert()方法会返回一个 1 值;
insertGetId()方法,可以在新增成功后返回当前数据 ID

$data = [[\'username\' => \'辉夜\',\'password\' => \'123\',\'gender\' => \'女\',\'email\' => \'huiye@163.com\',\'price\' => 90,\'details\' => \'123\',\'create_time\' => date(\'Y-m-d H:i:s\')]	,[\'username\' => \'辉夜\',\'password\' => \'123\',\'gender\' => \'女\',\'email\' => \'huiye@163.com\',\'price\' => 90,\'details\' => \'123\',\'create_time\' => date(\'Y-m-d H:i:s\')]];Db::name(\'user\')->insertAll($data);

insertAll()方法,批量增加数据

2、修改数据

$data = [\'username\' => \'李白\'];$update = Db::name(\'user\')->where(\'id\', 38)->update($data);

用 update()方法来修改数据,修改成功返回影响行数,没有修改返回 0;

4、删除数据

Db::name(\'user\')->delete(51);

极简删除可以根据主键直接删除,删除成功返回影响行数,否则 0;

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 初学者的ThinkPHP笔记