thinkphp6多表关联模型
时间: 2023-09-18 20:14:35 浏览: 164
ThinkPHP6中多表关联模型的使用可以通过两种方式实现,一种是使用关联模型,另一种是使用查询构造器。
首先,定义模型之间的关联关系,例如在一个博客系统中,有文章、标签、分类三个模型,文章属于一个分类和多个标签,可以在文章模型中定义与分类和标签模型的关联关系:
```php
namespace app\model;
use think\Model;
class Article extends Model
{
// 定义与分类模型的关联关系
public function category()
{
return $this->belongsTo(Category::class);
}
// 定义与标签模型的关联关系
public function tags()
{
return $this->belongsToMany(Tag::class);
}
}
```
其中 `belongsTo` 和 `belongsToMany` 分别表示一对一关联和多对多关联。
接下来可以通过关联模型的方式查询相关联的数据,例如查询某篇文章的分类和标签:
```php
// 获取文章
$article = Article::find(1);
// 获取分类
$category = $article->category;
// 获取标签
$tags = $article->tags;
```
另一种方式是使用查询构造器,可以通过 `join` 方法实现多表关联查询,例如查询某个分类下的所有文章:
```php
$articles = Db::table('article')
->alias('a')
->join('category c', 'a.category_id = c.id')
->where('c.id', 1)
->select();
```
以上两种方式都可以实现多表关联查询,根据具体场景选择使用。
阅读全文