Thinkphp5.0第二篇

Posted 陈国松

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Thinkphp5.0第二篇相关的知识,希望对你有一定的参考价值。

查询构造器

//插入记录
	$result=Db::table(\'think_data\')->insert([\'name\'=>\'张三\',\'status\'=>1]);
//修改数据
			$result=Db::table(\'think_data\')->where(\'id\', 1)->update([\'name\'=>"陈国松",\'status\'=>0]);
//查询数据
$result=Db::table(\'think_data\')->select();

(貌似修改数据不能以id修改可能是id加了AUTO_INCREMENT,能不用助手函数就不用助手函数)

链式操作

数据库提供的链式操作方法,可以有效的提高数据存取的代码清晰度和开发效率,并且支持所有的CURD操作。
使用也比较简单,假如我们现在要查询一个User表的满足状态为1的前10条记录,并希望按照用户的创建时间排
序 ,代码如下:

Db::table(\'think_user\')
->where(\'status\',1)
->order(\'create_time\')
->limit(10)
->select();

这里的 where 、 order 和 limit 方法就被称之为链式操作方法,除了select方法必须放到最后一个外
(因为select方法并不是链式操作方法),链式操作的方法调用顺序没有先后,例如,下面的代码和上面的等
效:

Db::table(\'think_user\')
->order(\'create_time\')
->limit(10)
->where(\'status\',1)
->select();

其实不仅仅是查询方法可以使用连贯操作,包括所有的CURD方法都可以使用,例如:

Db::table(\'think_user\')
->where(\'id\',1)
->field(\'id,name,email\')
->find();
Db::table(\'think_user\')
->where(\'status\',1)
->where(\'id\',1)
->delete();

链式操作在完成查询后会自动清空链式操作的所有传值。简而言之,链式操作的结果不会带入后面的其它查询。

查询数据

  $result=Db::name(\'data\')->where(\'status\',1)->find();

  $result=Db::name(\'data\')->where(\'status\',1)->select();

find方法和select方法的区别在于find只能查到一个,而select是查询所有的。

查询表达式

模糊查询

      $result=Db::name(\'data\')->where(\'name\',\'like\',\'%陈%\')->select();

区间查询

            $result=Db::name(\'data\')->where(\'id\',\'BETWEEN\',[2,4])->select();

一次性插入多条数据

            $data=[

     [\'name\'=>"凌志林",\'status\'=>1],

 	  [\'name\'=>"林志颖",\'status\'=>2],

            ];

            $result=Db::name(\'data\')->insertALL($data);

更改字段值

            $result=Db::name(\'data\')->where(\'name\',\'陈国松\')->setField(\'name\',\'陈松\');

自增加一

$result=Db::name(\'data\')->where(\'name\',\'陈松\')->setInc(\'status\');

自减

$result=Db::name(\'data\')->where(\'name\',\'陈松\')->setDec(\'status\',2);

模型

Thinkphp5.0的模型是一种关系映射ORM的封装并且提供了简洁的ActiveRecord实现。一般来说,每个数据表会和一个"模型对应"。

模型类返回的是当前模型对象实例,模型是比Db类更高级的数据封装,支持模型关联,模型事件。

模型定义

首先创建一个数据表

然后新建如下文件及文件夹

其中model里的User.php如下

<?php
namespace app\\index\\model;
use think\\Model;
class User extends Model
{
    
}

controller里面的User.php

<?php

namespace app\\index\\controller;

use app\\index\\model\\User as UserModel;

class User{

    //新增一条数据的方法

   public function add()

    {

       echo \'hello\';

        $user =new UserModel();

        $user->id=1;

        $user->name=\'陈国松\';

        $user->email=\'liuyun@qq.com\';

        $user->birthday=strtotime(\'1989-7-11\');

      if( $user->save()){

          return \'用户新增成功\';

      }else{
          return \'用户新增失败\';

     }

    }

}

地址栏这样访问(没有弄虚拟主机的)

http://localhost/thinkphp5.0/public/index.php/index/User/add

成功的话数据库会如下

以上是关于Thinkphp5.0第二篇的主要内容,如果未能解决你的问题,请参考以下文章

童老师第二季ThinkPHP5.0实战企业站开发视频教程

thinkphp5.0学习笔记API后台处理与命名空间

thinkphp5.0 column多字段问题

openpcdet之pointpillar代码阅读——第二篇:网络结构

openpcdet之pointpillar代码阅读——第二篇:网络结构

openpcdet之pointpillar代码阅读——第二篇:网络结构