使用 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);
我有一个名为 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);