用户模型上检查另一个表上变量的方法

时间:2018-08-20 17:02:01

标签: laravel laravel-5

我有一个用户模型,我想检查是否为用户分配了导师。

@foreach($question as $key => $qus)
<div ng-show="current.index == {{$key}}">{{$qus->question}}</div>
@endforeach

当我在修补程序中致电 class MyDate { dates: Date[]; constructor() { this.dates = []; } private addDays(currentDate) { let date = new Date(currentDate); date.setDate(date.getDate() + 1); return date; } getDates(startDate: Date, endDate: Date) { let currentDate: Date = startDate; while (currentDate <= endDate) { this.dates.push(currentDate); currentDate = this.addDays(currentDate); } return this.dates; } } let md = new MyDate(); let daysBetween: Date[] = md.getDates(new Date(2018, 7, 22), new Date(2018, 8, 30)); console.log(daysBetween); 时,会得到一个状态未定义的属性。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这里有几件事。首先,您的关系是一对多的。当您尝试使用关系时,应该期望返回Collection,而不是单个实体。因此,尝试访问返回的集合上的->status属性是行不通的。

第二,当您尝试像这样访问关系时:

$this->mentorapplication()

您将获得一个HasMany实例,这将使您可以对查询进行更多约束,就像->where(...)->orderBy(...)一样。您将需要使用->get()->first()之类的东西来实际运行查询并获得所需的结果。您可以在此处省略(),Laravel将为您加载该关系,并返回您的集合:

$this->mentorapplication

现在,我不确切知道您要实现的目标,但是例如您要查看是否至少分配了mentorApplication个对象中的counsellorAssigned个用户的状态为public function mentorAssigned() { foreach ($this->mentorapplication as $mentorapplication) { if ($mentorapplication->status == 'counsellorAssigned') { return true; } } return false; } ,则可以执行以下操作:

Collection

或者您可以使用Laravel的(e.g)方法来帮助您,而不仅仅是在这里做一个循环。您可以采用多种方法,所以我就把它留在那里。