【PHP】TP5 使用模型一对一关联查询,条件筛选及字段过滤

目录

方法一:使用Eloquent ORM的with关联查询

方法二:使用JOIN进行查询


方法一:使用Eloquent ORM的with关联查询


在 ThinkPHP5 中,可以使用模型关联和条件查询来实现一对一关联查询。以下是一个示例:

假设有两个表,一个是 users 表,一个是 profiles 表。users 表中有一个 profile_id 字段,用于关联 profiles 表中的 id 字段。

首先,在 User 模型中定义一个 profile 方法,用于关联 Profile 模型:

// User.php
public function profile()
{
    return $this->hasOne('Profile', 'id', 'profile_id');
}

然后,在控制器中使用模型关联查询,并添加条件:

// UserController.php
public function index()
{
    // 查询 users 表中的所有记录
    $users = User::with(['profile' => function($query) {
        $query->where('address', 'like', '%北京%');
        $query->field('profile_id,title');
    }])
        ->where('status', '=', 1)
        ->field('id,nickname')
        ->select();

    // 输出查询结果
    foreach ($users as $user) {
        if ($user->pro
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zzoood

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值