ThinkPHP5 一对多查询,查询父模型具有指定条件的所有子模型数据。

假设你有两个模型 User 和 Post,并且 User 模型和 Post 模型之间存在一对多的关联关系。你可以通过haswhere方法来查询所有性别为女的用户的所有帖子。

User.php

namespace appmodel;

use thinkModel;

class User extends Model
{
    // 定义一对多关联
    public function posts()
    {
        return $this->hasMany(Post::class);
    }
}

Post.php

namespace appmodel;

use thinkModel;

class Post extends Model
{
    // 反向关联用户
    public function user()
    {
        return $this->belongsTo(User::class);
    }
}

Query

use appmodelUser;
use appmodelPost;

// 查询所有性别为女的用户的所有帖子
$posts = Post::hasWhere('user', ['gender' => 'female'])->select();

// 输出查询结果
foreach ($posts as $post) {
    echo $post->title . '<br>';
}