【问题标题】:return many to many relation result in laravel and return null if it doesn't exist在 laravel 中返​​回多对多关系结果,如果不存在则返回 null
【发布时间】:2021-04-25 12:39:22
【问题描述】:

我在表格科目和老师之间有关系(多对多)

subjects
id
title
teachers
id
name
subject_teacher
id
subject_id
teacher_id
semester_id

这是我的 foreach 代码,如果不存在则返回 null

 $subjects = Subject:all();
 foreach ($subjects as $subject){
            $subject->staff = $subject->staffSubjects()->wherePivot('semester_id',$semester->id)->first();
        }

有没有办法在没有循环的情况下让每个主题的工作人员在一行中有雄辩的,如果它不存在则返回 null ?

【问题讨论】:

    标签: php laravel laravel-8


    【解决方案1】:

    有 has() 是根据关系过滤选择模型。所以它的行为与正常的 WHERE 条件非常相似。如果您只使用 has('relation') ,则意味着您只想获取在此关系中至少具有一个相关模型的模型。

    例子:

    用户 > hasMany > 发布

    $users = User::has('posts')->get()

    【讨论】:

    • 如果本学期有老师,我想和老师一起退回科目,而在您的情况下,它只会退回有科目的老师\
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 2019-07-24
    • 1970-01-01
    • 2013-10-21
    • 2019-01-12
    • 1970-01-01
    相关资源
    最近更新 更多