使用 Laravel 中的两列获取具有关系的数据

Get data with relation using two columns in Laravel

我有一个名为 table 的用户:

id |  name |  email  

和附件table

id |  file_name   |  user_id  |  type 
1    filename1.jpg      56         7
2    filename2.jpg      56         7
3    filename3.jpg      57         7
4    filename4.jpg      56         6

我正在从用户 table 获取数据,例如:

 $data = Users::find($id);

但我还想获得用户 table 的附件 table 数据。但我想匹配 user_id 并也输入,其中 user_id 匹配并且 type = 7 只有那些行应该 return.

首先创建附件模型php artisan make:model Attachment

在 'Users' 模型中创建与 'Attachment' 的 hasMany 关系。

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Users extends Model
{
    public function attachments()
    {
        return $this->hasMany(Attachment::class);
    }
}

那你可以像这样查询

$data = Users::with(['attachments' => function ($query) {
    $query->where('type', 7);
}])->find($id);