【问题标题】:Laravel Relationships setup for the following table下表的 Laravel 关系设置
【发布时间】:2018-12-08 01:07:01
【问题描述】:

我正在尝试设置考试时间表模块, 这是表结构:-


id
title
start_date
end_date
class_id
subject_id
date(for each subject_id)

现在问题是 class_id 作为“id”存在于教室表中,我需要从中获取它的名称,该名称在表中作为“title”。同样,对于在主题表中作为“id”存在的subject_id,在表中作为“title”的名称。一旦我得到这些,数据库表将如下所示:-


id      title           start_date          end_date        class_id        subject_id  date
1       test            some_date           some_date           1           1       date
1       test            some_date           some_date           1           2       date
1       test            some_date           some_date           1           3       date
1       test            some_date           some_date           1           4       date

如何设置我的控制器与关系,请帮助!

【问题讨论】:

  • 首先阅读Eloquent relationships 上的文档。有很多例子。如果您有任何具体问题,请回来。
  • 我已经问了我的具体问题@fubar
  • 您可以查看表格之间的文字以获取问题,还有没有更好的方法?

标签: laravel laravel-5 vue.js


【解决方案1】:

试试这个。
在考试模型中。

public function class()
{
    return $this->hasMany('App\Class');
}
public function subject()
{
     return $this->hasMany('App\Subject');
}

在类模型中。

  public function exam()
{
     return $this->belongsTo('App\Subject');
}

在主题模型中

  public function exam()
{
     return $this->belongsTo('App\Subject');
}

这样,你可以执行

 return $exam->subject->title

 return $exam->class->title

但是如果您已经在类和主题之间建立了关系,您可以使用您可以在此处找到的所属的另一种方式来实现这一点。 https://laravel.com/docs/5.6/eloquent-relationships#has-many-through

【讨论】:

  • 嘿@ashish 在类模型中不应该是belongsTo('App\Exam') 并且对于主题模型也是如此。如果我错了,请告诉我
  • 如果你也想在班级和学科之间建立关系,那就对了。
  • 我需要更多帮助,但我的问题在这里被否决了,我们可以连接其他地方吗? facebook.com/geekshubh可以发个好友申请吗?
猜你喜欢
  • 2017-07-20
  • 2017-06-25
  • 2017-03-29
  • 1970-01-01
  • 2017-10-01
  • 2018-04-25
  • 1970-01-01
  • 1970-01-01
  • 2020-05-09
相关资源
最近更新 更多