广告位 |
thinkphp数据库模型一对多关联
2021年9月25日 10:54编程 > 2007人已围观
简介 关联模型(必须):关联模型类名 外键:关联模型外键,默认的外键名规则是当前模型名+_id 主键:当前模型主键,一般会自动获取也可以指定传入...
关联定义
一对多关联的情况也比较常见,使用hasMany
方法定义,参数包括:
hasMany('关联模型','外键','主键');
除了关联模型外,其它参数都是可选。
关联模型(必须):关联模型类名
外键:关联模型外键,默认的外键名规则是当前模型名+
_id
主键:当前模型主键,一般会自动获取也可以指定传入
例如一篇文章可以有多个评论
<?php namespace app\model;use think\Model;class Article extends Model { public function comments() { return $this->hasMany(Comment::class); }}
同样,也可以定义外键的名称
<?php namespace app\model;use think\Model;class Article extends Model { public function comments() { return $this->hasMany(Comment::class,'art_id'); }}
关联查询
我们可以通过下面的方式获取关联数据
$article = Article::find(1);// 获取文章的所有评论dump($article->comments);// 也可以进行条件搜索dump($article->comments()->where('status',1)->select());
根据关联条件查询
可以根据关联条件来查询当前模型对象数据,例如:
// 查询评论超过3个的文章$list = Article::has('comments','>',3)->select();// 查询评论状态正常的文章$list = Article::hasWhere('comments',['status'=>1])->select();
如果需要更复杂的关联条件查询,可以使用
$where = Comment::where('status',1)->where('content', 'like', '%think%');$list = Article::hasWhere('comments', $where)->select();
关联新增
$article = Article::find(1);// 增加一个关联数据$article->comments()->save(['content'=>'test']);// 批量增加关联数据$article->comments()->saveAll([ ['content'=>'thinkphp'], ['content'=>'onethink'],]);
定义相对的关联
要在 Comment 模型定义相对应的关联,可使用 belongsTo
方法:
<?php name app\model;use think\Model;class Comment extends Model { public function article() { return $this->belongsTo(Article::class); }}
关联删除
在删除文章的同时删除下面的评论
$article = Article::with('comments')->find(1);$article->together(['comments'])->delete();
广告位 |
相关文章
随机图文
-
他明白了为何古人皆要戒酒
他明白了为何古人皆要戒酒消愁,他明白为何达官显贵皆要放浪青楼。也许本是他的错,那年年少,错把痴情真心付之东流。... -
胡锡进:孟晚舟以不认罪的方式获释
胡锡进写道:“过去的1000多天对她来说是颠覆性的,对国际关系来说也是颠覆性的。然而在中国政府的强大协助下,孟晚舟最终以不认罪的方式得以获释,这令人欣慰。与前法国阿尔斯通公司高管弗雷德里克·皮耶鲁齐当年在美国被判刑并受到5年监禁,以及阿尔斯通公司付出高额罚金、并被迫将核心业务出售给美国通用公司相比,孟晚舟和华为都幸运得多。”... -
佳人梳妆台前坐
佳人梳妆台前坐,他在庭院花中舞。她直直的望着眼前的镜面,因为镜面似心,心中有他的影。不需要浓妆重彩,一则此地无他人;二则她深知,在他的心中,她最美。正值初春三月,桃花正红,周边有小渠,鱼虾水中游。... -
江南布衣不江南
这家品牌,从骨子里,一贯所默认的就是西方元素能够抓住市场的眼球。但事实上,现在的中国市场,早已过了“外国的月亮比较圆”的阶段了。而江南布衣有这样的品牌文化,也与之成长路径有着密不可分的关系。...