gpt4 book ai didi

php - 如何使用 laravel eloquent 访问多个外键

转载 作者:行者123 更新时间:2023-11-29 09:41:15 25 4
gpt4 key购买 nike

我想获取一个学生的文件及其所有数据。

我的表格(我总结了我需要的表格。):


students
- id
- name
student_files
- id
- student_id
- type_file_id
- file_url
type_files
- id
- name

型号:


// ...
class Student extends Authenticatable{
// ...

public function files()
{
return $this->hasMany('App\StudentFiles');
}

// ...

Controller :


// ...
class Student extends Authenticatable{
public function getFiles(Request $request)
{
$user = Student::Find($request->user()->id)->load('files');
}
// ...

我已经尝试过类似的方法...不起作用。


public function files()
{
return $this->hasMany('App\StudentFiles')->hasOne('App\TypeFiles');
}

请求结果:


// ...

"files": [
{
"id": 1,
"student_id": 1,
"type_file_id": 1,
"file_url": "example.jpg",
}
]

// ...

我想要的结果

 // ...


"files": [
{
"id": 1,
"student_id": 1,
"type_file_id": 1,
"name": "Profile",
"file_url": "example.jpg",
}
]
// ...

我尝试了多种方法,但无法解决我的问题。

最佳答案

您可以将 typeFile 关系添加到 StudentFile:

class StudentFiles extends Model {
public function typeFile()
{
return $this->hasOne('App\TypeFile', 'type_file_id');
}
}

然后通过预加载访问它:

$user = Student::with('files', 'files.typeFile')->find($request->user()->id);
$typeFileName = $user->files->typeFile->name;

关于php - 如何使用 laravel eloquent 访问多个外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56570435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com