我想获取包含所有数据的学生文件。我的表格(我总结了我需要的表格。): 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'); } // ...控制器: // ... 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", } ] // ...我已经尝试了多种方法,但无法解决我的问题。
1 回答
aluckdog
TA贡献1847条经验 获得超7个赞
您可以将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;
- 1 回答
- 0 关注
- 226 浏览
添加回答
举报
0/150
提交
取消