10构造器之查询数据
目前我的数据库demo中已经有了一个表,user
然后我手动添加了四条数据如图:
现在我们在控制器User中,
写一个新的函数:
public function get()
{
$user = Db::table(table: "user")->select();
return json($user);
}其中Db,要使用:
use think\facade\Db;一定要何足以,是使用 think\facade\Db,而不是另外一个!
现在开始访问这个地址:http://localhost:8080/user/get
效果如下:
$user = Db::table("user")->where("id", 1)->find();public function get()
{
$user = Db::table(table: "user")->select();
//find()函数的用法,在user表中,寻找id为1,where()
// $user = Db::table("user")->where("id", 1)->find();
//这样会返回一个null
$user = Db::table("user")->where("id", 11)->find();
//这样会返回一个空数组
$user = Db::table("user")->where("id", 11)->findOrEmpty();
// $user = Db::table("user")->where("id", 11)->findOrFail(); //这样会返回一个异常
//转换成数组
$user = Db::table(table: "user")->select()->toArray();
// halt($user);
$user = Db::table(table: "user")->where("age", 18)->select()->toArray();
return json($user);
}
链式查询
我们发现通过指向符号"->“多次连续调用方法称为:链式查询;
当 Db::table('user")时,返回査询对(Query),即可连缀数据库对应的方法;当返回查询对象(Query)时,就可以继续调用链式方法,where()也是链式方法;。而 where()被调用后,依旧返回(Query),可以再次链式调用;
在手册 数据库 ·>查询构造器 ·>链式操作 可以了解所有可链式的方法:table、where等;
直到遇到 find()或 select() 返回数组或数据集时,结束查询;



评论已关闭