限时免费试用:欢迎注册 api.bigmodel.org ,快速体验大模型 API 接入服务。
当前位置:首页 >开发者 >网站框架 >小程序

tp5+小程序开发笔记(五)数据库操作

分类:小程序时间:2018-04-15浏览:4232
设置带版本号的路由
Route::get('api/v1/banner/:id','api/v1.banner/getBanner');

1.tp5原生sql

use think\Db;
Db::query("select * from user where id=?",[$id]);

2.查询构建器

Db::table('user')->where('id','=',$id)->find();
select
update
delete
insert
where参数
where('字段名','表达式','查询条件')
fetchsql 不执行,输出sql语句
Db::table('user')->fetchSql()->where('id','=',$id)->find();
如果log被关闭了,但是想要记录sql的日志,在入口文件添加:
\think\Log::init([
'type'=>'File',
'path'=>LOG_PATH,
'level'=>['sql']
]);

3.ORM模型(关系对象映射)

操作的是对象,返回的是模型对象 参考文章:tp5controller与model使用数据库 命令行:
php think make:model api/Usermodel
使用方法 1.静态方法 $banner = BannerModel::get($id); 2.实例对象调用

常用动词区别:

get:1条数据 find:1条数据 all:多组数据 select:多组数据 使用Db时,可以使用 find和select,不能使用另外两种 使用模型时,都可以使用 orm模型中引入其他model
BannerModel.php中使用BannerItemModel.php
在BannerModel中添加
1对多
public function item(){
 return $this->hasMany('BannerItemModel','banner_id','id');
}
使用方法:
在控制器中:
$banner = BannerModel::with('item')->find($id);
引入多个可使用数组的形式,如:$banner = BannerModel::with(['item','cccc2'])->find($id);


1对1
public function img(){ 
   return $this->belongsTo('Image','image_id','id'); 
}

banner中即使用BannerItemModel 又使用Image
controller
$banner = BannerModel::with(['items','items.img'])->find($id);
model
$banner = self::with(['items','items.img'])->find($id);

隐藏字段

1.麻烦,有时需要循环
资源转数组
$data = $banner->toArray();
unset($data['create_time']);

资源转json
$data = $banner->toJson();
2.建议使用
隐藏属性
$banner->hidden(['create_time']);

显示属性
$banner->visible(['id','name']);

模型内部item的隐藏
protected $hidden=['id'];
本站文章如未注明出处均为原创,转载请注明出处,如有侵权请邮件联系站长。
0/500
Share your thoughts respectfully.