当前位置: 首页 > 知识库问答 >
问题:

Laravel 5.4关系

梁丘缪文
2023-03-14

我有3个模型和一个透视表:

学校年-模型

ID

课程模式

ID

schoolyear_id

课程\学生-数据透视表

课程号

学生证

学生模型

ID

关系是:

一学年有许多课程

一门属于任何学生的课程

在任何课程中的学生

什么是最快、更优雅的方法来找到学生进入一个学年,并且能够按学生属性进行排序

        $year = SchoolYear::firstOrCreate(['anul'=>Carbon::now()->year]);
        $courses = $year->courses;
        $students = collect([]);
        foreach($courses as $course){
            $course_students = $course->students;
            foreach($course_students as $course_student){
                $students->push($course_student);
            }
        }
        dd($year, $students);

共有1个答案

窦夜洛
2023-03-14

Eloquent提供了一组查询关系存在性的方法<如果没有条件,则代码>has();如果有条件,则代码>whereHas()。

所以,在你的例子中,你希望学生有一个相关的学年。

$year = SchoolYear::firstOrCreate(['anul'=>Carbon::now()->year]);

// assumes Student has a "courses" relationship,
// and Course has a "schoolYear" relationship
$students = Student::whereHas('courses.schoolYear', function ($query) use ($year) {
        return $query->where('anul', $year->anul);
    })
    ->get();

dd($year, $students);
 类似资料:
  • 本文向大家介绍Ubuntu 16.04中Laravel5.4升级到5.6的步骤,包括了Ubuntu 16.04中Laravel5.4升级到5.6的步骤的使用技巧和注意事项,需要的朋友参考一下 前言 本文只为记录升级过程 本文用的是Ubuntu16.04的系统,如果Windows只需要改一下PHPStudy或下载相关的PHP版本即可,下面话不多说了,来一起看看详细的介绍吧 1、确认和升级PHP版本

  • 我有以下表格: 使用表格: 设置表: Setting_user(数据透视表): 类别表: Setting_category(数据透视表): 在我的用户模型中,我有一个归属关系: 在我的设置模型中: 受保护的$table='settings'; 当我这样访问它时: 这是我得到的结果: 如何仅获取类别设置- 非常感谢

  • 本文向大家介绍解决laravel5.4下的group by报错的问题,包括了解决laravel5.4下的group by报错的问题的使用技巧和注意事项,需要的朋友参考一下 使用ORM查询数据显示这个错,这是因为laravel使用了开启了mysql的严格模式所以 如果要关闭的话,我们需要找到config/database.php这个文件,然后将 mysql下的这个改为false;就会关闭。 既然说严

  • 我正在开发Laravel5.4的api。我将收到base64格式的图像。如何将base64转换为Laravel中的图像?

  • 本文向大家介绍Laravel5.4框架使用socialite实现github登录的方法,包括了Laravel5.4框架使用socialite实现github登录的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Laravel5.4框架使用socialite实现github登录的方法。分享给大家供大家参考,具体如下: 1.安装laravel5.4 2.安装Socialite 3.配置 编

  • 本文向大家介绍Laravel5.4简单实现app接口Api Token认证方法,包括了Laravel5.4简单实现app接口Api Token认证方法的使用技巧和注意事项,需要的朋友参考一下 我是小白,今天写这篇文章主要是给新手学习看的,大佬就不用看了,有很多不足望大家指出,共同进步。 在开发中许多 API 通常在返回响应之前都需要某种形式的认证,有些时候,一个认证的请求和一个未认证的请求,响应可

  • 我在我的Ubuntu14.04上有一个Laravel5.4项目(带有Plesk12.5.30的VPS)。创建数据库并使用所需信息设置.env文件后,我运行了,并引发异常: 无法找到驱动程序(SQL:选择*frominformation_schema.tables其中table_schema=pmaramaldb和table_name=迁移) [PDO异常] 找不到驱动程序 My.env文件具有:

  • 说我有这样的关系 那么,我是否可以说这种关系是一种关联,而不是聚合或组合。 我可以说狮子使用食物并像这样绘制UML图吗 此外,这种关系也没有多重性,因为Lion没有Food数组,食物也没有Lions数组作为实例变量。不同于复合和聚合,其中关系具有多重性。 如果我希望Food也能以同样的方式使用Lion呢。我在两个班级之间画两个箭头吗?