dar*_*mnx 4 php sql orm laravel eloquent
我遇到了 Laravel 的 ORM 的问题,雄辩但尚未找到解决方案。
我有一些表格如下
团队
- id
- name
Run Code Online (Sandbox Code Playgroud)
用户
- id
- name
- role
- team_id
Run Code Online (Sandbox Code Playgroud)
学生信息
- id
- user_id
- data1
- data2
- etc ...
Run Code Online (Sandbox Code Playgroud)
项目
- id
- student_id
- name
Run Code Online (Sandbox Code Playgroud)
现在,我想查询某个特定的所有项目team,其中team = 'some team'
现在的问题是,如果没有 ORM,这很简单,我会在原始 SQL 中完成多个连接。
然而,因为所有这些表都有一个共同的列“名称”,我将不得不为所有这些东西起别名,这真的很无聊
对于雄辩的我找不到一种方法来使用“有很多通过”来执行此查询,因为它只允许中间,而且我无法执行原始 SQL,因为 alis 的事情确实是一个痛苦的事情,因为它会是将结果映射到 Laravel 的模型非常困难
Jon*_*eir 10
本案不存在原生关系。
我创建了HasManyThrough无限级别的关系:GitHub 上的存储库
安装后,您可以像这样使用它:
class Team extends Model {
use \Staudenmeir\EloquentHasManyDeep\HasRelationships;
public function projects() {
return $this->hasManyDeep(Project::class, [User::class, StudentInfo::class],
[null, null, 'student_id']);
}
}
$projects = Team::where('name', 'some team')->first()->projects;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4513 次 |
| 最近记录: |