💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
### ORM 数据库 请充分理解关联关系中的 ## 一对一关联 (hasOne) <?php namespace app\index\model; use think\Model; class User extends Model { public function profile() { return $this->hasOne('Profile','uid'); //uid是外键 } } ## 一对一关联 (从属belongsTo) <?php name app\index\model; use think\Model; class Comment extends Model { public function article() { return $this->belongsTo('article'); } } ## 关联删除 $article = Article::get(1,'comments'); $article->together('comments')->delete(); ## 一对多关联 例如一篇文章可以有多个评论 <?php namespace app\index\model; use think\Model; class Article extends Model { public function comments() { return $this->hasMany('Comment'); } } 同样,也可以定义外键的名称 <?php namespace app\index\model; use think\Model; class Article extends Model { public function comments() { return $this->hasMany('Comment','art_id'); } } 根据关联条件查询 查询评论超过3个的文章 $list = Article::has('comments','>',3)->select(); 查询评论状态正常的文章 $list = Article::hasWhere('comments',['status'=>1])->select(); 关联新增 $article = Article::find(1); 增加一个关联数据 $article->comments()->save(['content'=>'test']); 批量增加关联数据 $article->comments()->saveAll([ ['content'=>'thinkphp'], ['content'=>'onethink'], ]); 关联查询 我们可以通过下面的方式获取关联数据 $article = Article::get(1); 获取文章的所有评论 dump($article->comments); 也可以进行条件搜索 dump($article->comments()->where('status',1)->select()); 关联关系对照 类型 |关联关系 |相对的关联关系 -|-|- 一对一| hasOne| belongsTo 一对多 |hasMany |belongsTo 多对多| belongsToMany |belongsToMany 远程一对多 |hasManyThrough |不支持 多态一对一 |morphOne |morphTo 多态一对多 |morphMany |morphTo 理解关联关系,有助于快速开发系统功能。 禁止直接使用DB底层直接操作数据库。 只可以使用model层。方便以后分表分库操作,日志记录等。 例如,Profile模型中就可以定义一个相对的关联关系。 <?php namespace app\index\model; use think\Model; class Profile extends Model { public function user() { return $this->belongsTo('User'); } } 在进行关联查询的时候,也是类似,只是当前模型不同。 获取档案实例 $profile = Profile::get(1); 获取档案所属的用户名称 echo $profile->user->name; 如果你需要对关联模型进行更多的查询约束,可以在关联方法的定义方法后面追加额外的查询链式方法(但切忌不要滥用,并且不要使用实际的查询方法),例如: <?php namespace app\index\model; use think\Model; class User extends Model { public function book() { return $this->hasMany('Book')->order('pub_time'); } } 更多关联请查[手册](https://www.kancloud.cn/manual/thinkphp5_1/354056)